@arbocollab/arbo-plugin-item-table 1.0.36 β†’ 1.0.203

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/CHANGELOG.md ADDED
@@ -0,0 +1,2984 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
+
5
+ ## [1.0.203] - 2026-02-27 (Live)
6
+
7
+ ### 🎯 Release Summary (0.0.36 β†’ 0.0.203)
8
+
9
+ This live milestone consolidates all major improvements delivered from `0.0.36` up to `0.0.203`, focused on table performance, metric editing, filtering accuracy, bulk operations, permission safety, keyboard accessibility, and overall UX stability.
10
+
11
+ ### πŸš€ Major Highlights
12
+
13
+ - **Bulk update (detailed)**
14
+ - Introduced centralized bulk update store state for consistent selection status across header checkbox, bulk panel, and table actions
15
+ - Added full β€œSelect All” flow for partial/indeterminate selection, with support for `visibleRows` vs `totalRows` scenarios
16
+ - Unified bulk action handling for assignee, status, date, and metric update paths with cleaner action switching
17
+ - Added/propagated `filterParams` so bulk updates correctly target filtered entity-level datasets
18
+ - Improved payload consistency for clear/replace/update operations (including metric clear semantics)
19
+
20
+ - **UI changes (detailed)**
21
+ - Refined drag/drop row items with reusable icon system, clearer metric-type indicators, and improved text overflow handling
22
+ - Improved checkbox sizing system with CSS variable-driven dimensions and consistent sizing presets
23
+ - Enhanced snackbar layering and interaction behavior to reduce overlap with popup/modal stacks
24
+ - Improved create-scene UX with safer failure behavior, clearer action layout, and keep-open creation mode
25
+ - Upgraded avatar/profile and tooltip interaction patterns for more consistent user detail display and popup behavior
26
+
27
+ - **Search improvements (detailed)**
28
+ - Standardized search input behavior via auto-emit + debounce strategy for smoother query updates
29
+ - Improved search state rendering with clearer empty/no-result states and better loading skeleton handling
30
+ - Refined SearchList keyboard/click event model to pass full event context and improve close/select reliability
31
+ - Improved API search parameter consistency (`search`) and reduced noisy/empty query serialization
32
+
33
+ - **Filter improvements (detailed)**
34
+ - Expanded filter suite coverage (status, assignee, archive status, date range) with improved data exposure/clear methods
35
+ - Switched default archive behavior to active-first through `preflight_status: '1'` while preserving explicit `status_eq` cases
36
+ - Clarified clear vs reset behavior to avoid accidental β€œshow everything” scenarios
37
+ - Improved filter count logic and active-state detection (including selected assignees and archive combinations)
38
+ - Better synchronization between filter UI state, cached state, and table query params
39
+
40
+ - **Table customization (detailed)**
41
+ - Upgraded column manager/search UX with cleaner conditional rendering and focused query behavior
42
+ - Added dynamic height handling tied to table/container size for predictable layout on different screens
43
+ - Improved pinned/unpinned organization and drag-disable rules while searching
44
+ - Introduced warning-state styling and metric selection constraints (including max selected metric behavior)
45
+ - Improved focus management (auto-focus on open) and warning display support in customization layout
46
+
47
+ - **Permission handling (detailed)**
48
+ - Refactored permission checks to rely on cell params/row data instead of fragile context-only reads
49
+ - Hardened fallback behavior to `readOnly` when permission data is missing or incomplete
50
+ - Improved edit-type classification and permission guard consistency across renderer/editor selectors
51
+ - Added safer handling for metric editability (formula and auth-permission constraints)
52
+ - Reduced accidental edit entry points by aligning renderer defaults with restrictive permission assumptions
53
+
54
+ - **Performance (detailed)**
55
+ - Improved API pagination defaults for heavy lists (notably metric/status retrieval) to reduce request volume
56
+ - Optimized AG Grid refresh/update paths with smarter row updates and targeted cell refresh behavior
57
+ - Added/loading refinement for skeleton rendering only when row or field data is truly undefined
58
+ - Reduced redundant re-renders and duplicate fetch/update logic by extracting shared composables
59
+ - Improved cache/fetch patterns for remote assets and user/icon data to limit repeated network work
60
+
61
+ - **Accessibility and interaction quality**
62
+ - Expanded keyboard navigation in calendars, editors, and list/dropdown controls
63
+ - Improved focus management, tab flow, and escape/cancel behavior
64
+ - Tuned event propagation/handling in critical dropdowns and status selectors for fewer interaction conflicts
65
+
66
+ - **Code quality and maintainability**
67
+ - Component/composable refactors (row updating, metric updates, input handling)
68
+ - Better type safety and cleaner event contracts across UI/core packages
69
+ - Ongoing cleanup of legacy/debug code and consistency improvements
70
+
71
+ ### πŸ“¦ Live Version Update
72
+
73
+ - **Version:** `0.0.203` β†’ `1.0.203`
74
+ - **Status:** Live release baseline
75
+
76
+ ## [0.0.194] - 2026-02-26
77
+
78
+ ### πŸš€ Features
79
+
80
+ **Status Selection Enhancement**
81
+
82
+ - **AddNewStatus Component:** Improved status selection with immediate dropdown hide behavior
83
+ - Status selection now auto-hides dropdown after selection
84
+ - Enhanced event handling with better propagation control (`stopImmediatePropagation`, `preventDefault`, `stopPropagation`)
85
+ - Added comprehensive console logging for debugging toggle behavior
86
+
87
+ **SearchList Component - Event System Refactor**
88
+
89
+ - **Enhanced Event Handling:**
90
+ - Updated select event signature: `select: [item: OptionItemType, e: Event]`
91
+ - Now passes both item and event object for better control
92
+ - Improved click event binding with proper event passing
93
+ - Enhanced keyboard selection with event object in `selectCurrentItem()`
94
+
95
+ ### πŸ”§ Bug Fixes
96
+
97
+ - Fixed status selection not triggering dropdown hide after selection
98
+ - Improved event propagation in status toggle handler to prevent unwanted bubbling
99
+ - Fixed `handleSelect` to properly receive and handle event objects
100
+
101
+ ### πŸ“¦ Updates
102
+
103
+ - Version: `0.0.193` β†’ `0.0.194`
104
+
105
+ ---
106
+
107
+ ## [0.0.193] - 2026-02-26
108
+
109
+ ### πŸš€ Features
110
+
111
+ **Checkbox Component Enhancement**
112
+
113
+ - **Dynamic Size System:** Complete refactor of size handling
114
+ - Added support for numeric sizes: `number | '${number}px'`
115
+ - Smart size calculation with `checkboxSize` computed property
116
+ - Size presets: small (14px), medium (20px), large (24px)
117
+ - CSS variable-based sizing with `--input-size`
118
+ - Better flexibility for custom dimensions
119
+
120
+ **Drag & Drop Improvements**
121
+
122
+ - **DragDropItem Component:**
123
+ - Added `disableDragTooltip` prop for custom tooltip messages
124
+ - Replaced inline SVG icons with reusable `Icon` component
125
+ - Metric type indicators now use consistent icon system:
126
+ - Woohoo metric: `ChartPie` icon
127
+ - Point metric: `Bullseye` icon
128
+ - Max-width adjustments for better text overflow handling (170-180px)
129
+ - Checkbox size updated to `16px` for consistency
130
+
131
+ **Table Customization**
132
+
133
+ - **Enhanced UX:**
134
+ - Search box auto-focuses when dropdown opens via `nextTick`
135
+ - Changed from `max-height` to fixed `height` for consistency
136
+ - Added `.has-warning` class for better warning state styling
137
+ - Grid template updates to support warning banner display
138
+
139
+ **Status Management**
140
+
141
+ - **AddNewStatus Component:**
142
+ - Enhanced status fetching with pagination support
143
+ - Added `per_page: PAGINATION.PER_PAGE` parameter for efficient loading
144
+ - Improved status toggling logic with auto-hide behavior
145
+ - Better integration with entity-level status filtering
146
+
147
+ **Header Sorting**
148
+
149
+ - **Metric Type Display:**
150
+ - Added visual indicators for primary/secondary metrics
151
+ - Woohoo metric (primary): ChartPie icon with proper color
152
+ - Point metric (secondary): Bullseye icon with gray color
153
+ - Fixed metric type detection logic: `metric.type === MetricType.POINT`
154
+ - Improved visual hierarchy in metric columns
155
+
156
+ **UI/UX Enhancements**
157
+
158
+ - **Snackbar Component:**
159
+ - Reduced z-index from 999 to 2 for better layer management
160
+ - Prevents overlap issues with modals and popups
161
+ - **Item Table Resizing:**
162
+ - Dynamic height calculation: `clientHeight - 78px` (adjusted from 42px)
163
+ - Added window resize listener for responsive table height
164
+ - Proper cleanup with `removeEventListener` on component unmount
165
+ - **Create Scene Workflow:**
166
+ - Added 'close-open' mode for faster scene creation
167
+ - Better form state management during creation flow
168
+
169
+ ### πŸ”§ Technical Improvements
170
+
171
+ **Event Handling**
172
+
173
+ - Better event propagation control in status selection
174
+ - Improved focus management in table customization
175
+ - Enhanced window resize handling with proper cleanup
176
+
177
+ **Icon System**
178
+
179
+ - Unified icon usage across drag & drop components
180
+ - Consistent color theming with CSS variables
181
+ - Reduced SVG duplication by using Icon component
182
+
183
+ **Code Quality**
184
+
185
+ - Removed hardcoded SVG markup in favor of Icon component
186
+ - Better prop typing with `disableDragTooltip`
187
+ - Improved computed properties for size calculations
188
+
189
+ ### πŸ“¦ Updates
190
+
191
+ - Version: `0.0.191` β†’ `0.0.193`
192
+
193
+ ---
194
+
195
+ ## [0.0.191] - 2026-02-26
196
+
197
+ ### πŸš€ Features
198
+
199
+ **API Enhancements**
200
+
201
+ - **ItemService Updates:**
202
+ - Enhanced `getAssignableStatuses` with pagination parameters
203
+ - Added `page?: number` and `per_page?: number` options
204
+ - Better support for entity-level status fetching with flexible filtering
205
+ - Improved query parameter handling for status assignment
206
+
207
+ **Cell Rendering Logic**
208
+
209
+ - **CellFactory Improvements:**
210
+ - Enhanced editability checks with comprehensive logging
211
+ - Smart cell renderer selection based on data availability
212
+ - Added `renderSelecterForCell` helper function for conditional rendering
213
+ - Better handling of metric vs. standard columns
214
+ - Improved loading state detection with multiple conditions:
215
+ - Checks if `params.data === undefined`
216
+ - Checks if `params.node.data === undefined`
217
+ - Checks if field value is undefined
218
+ - More accurate determination of when to show loading skeletons
219
+
220
+ **Loading Component**
221
+
222
+ - **Enhanced LoadingComponent:**
223
+ - Added proper lifecycle methods:
224
+ - `getValue()` - Returns current parameter value
225
+ - `isPopup()` - Returns false for non-popup behavior
226
+ - `getPopupPosition()` - Returns undefined for default positioning
227
+ - Event listener cleanup with `destroy()` method
228
+ - Better click event prevention with `addEventListener` instead of onclick
229
+ - Proper `refresh()` method with explicit `boolean` return type
230
+ - Improved component lifecycle compatibility with AG Grid
231
+
232
+ **Data Management**
233
+
234
+ - **useRowUpdater Refactor:**
235
+ - Commented out metric values update logic to prevent race conditions
236
+ - More predictable row update behavior
237
+ - Prevents overwriting of metric data during concurrent updates
238
+ - Better separation of concerns for data management
239
+
240
+ **Item Table**
241
+
242
+ - **FilterStatus Integration:**
243
+ - Added `entityId` prop support for entity-specific filtering
244
+ - Better integration with status filtering system
245
+ - Improved filter state management
246
+
247
+ **Scene Creation**
248
+
249
+ - **CreateNewScene Component:**
250
+ - Added `entityId` prop to AddNewStatus for proper status fetching
251
+ - Improved error handling with scene ID validation
252
+ - Enhanced console logging for debugging creation flow
253
+ - Better failure state management when scene creation fails
254
+ - Prevents form closure on error for better user recovery
255
+
256
+ ### πŸ”§ Bug Fixes
257
+
258
+ **Cell Editability**
259
+
260
+ - Fixed editable cell detection to properly handle undefined values
261
+ - Changed condition from `||` to proper nested checks
262
+ - Now correctly identifies cells that should show loading skeletons
263
+ - Prevents editing attempts on cells with undefined data
264
+
265
+ **Loading State Display**
266
+
267
+ - Improved loading skeleton display logic
268
+ - Fixed cases where skeletons weren't showing for undefined field values
269
+ - Better visual feedback during data loading phases
270
+
271
+ **Status Fetching**
272
+
273
+ - Fixed status fetching to use correct API endpoint with pagination
274
+ - Proper entity ID passing for filtered status lists
275
+ - Better error handling in status API calls
276
+
277
+ ### 🎨 UI/UX
278
+
279
+ **Loading States**
280
+
281
+ - Better loading state visual feedback with proper skeleton display
282
+ - Consistent loading behavior across all cell types
283
+ - Improved user perception of data loading
284
+
285
+ **Error Messages**
286
+
287
+ - Enhanced error messages for scene creation failures
288
+ - Better console logging for debugging issues
289
+ - More informative failure states
290
+
291
+ **Click Prevention**
292
+
293
+ - Loading cells now properly prevent click interactions
294
+ - Better event propagation control with `stopImmediatePropagation`
295
+
296
+ ### πŸ”§ Technical Improvements
297
+
298
+ **Code Quality**
299
+
300
+ - Added comprehensive console logging for editability checks
301
+ - Better debugging capabilities with detailed parameter logging
302
+ - Improved code documentation with inline comments
303
+ - More maintainable cell rendering logic
304
+
305
+ **Type Safety**
306
+
307
+ - Proper typing for LoadingComponent methods
308
+ - Better parameter type checking in cell rendering
309
+ - Improved type inference for cell params
310
+
311
+ **Performance**
312
+
313
+ - Smarter loading state detection reduces unnecessary renders
314
+ - Better event listener management with proper cleanup
315
+ - Optimized cell refresh behavior
316
+
317
+ ### πŸ“¦ Updates
318
+
319
+ - Version: `0.0.190` β†’ `0.0.191`
320
+
321
+ ---
322
+
323
+ ## [0.0.190] - 2026-02-25
324
+
325
+ ### ⚑ Performance
326
+
327
+ - Added new `LoadingComponent` for optimized skeleton rendering
328
+ - Improved cell rendering logic to show skeleton loaders only when data is undefined
329
+ - Removed unnecessary delays and console logs from metric batch fetching
330
+ - Optimized skeleton animations with standardized CSS variables
331
+
332
+ ### 🎨 UI/UX
333
+
334
+ - Enhanced skeleton loading with dynamic width randomization (60-90%)
335
+ - Added shimmer effect to loading states
336
+ - Fixed tooltip positioning to prevent overflow (now appends to `#item-table-layout-id`)
337
+ - Unified skeleton animations across themes (1.5s light, 3.5s dark)
338
+
339
+ ### πŸ”§ Technical
340
+
341
+ - Implemented smart cell renderer selection based on data availability
342
+ - Added `.ag-cell-skeleton` class for consistent loading appearance
343
+ - Removed debug console.logs from multiple components
344
+ - Better async/await patterns in metric fetching
345
+
346
+ ### πŸ“¦ Updates
347
+
348
+ - Version: `0.0.188` β†’ `0.0.190`
349
+
350
+ ## [0.0.188] - 2026-02-25
351
+
352
+ ### ⚑ Performance Improvements
353
+
354
+ **API Optimization**
355
+
356
+ - **Increased Pagination Limit**: Changed default `per_page` from 20 to 100 in metric list fetching
357
+ - Reduces number of API calls for large datasets
358
+ - Improves initial data loading performance
359
+ - Better user experience with fewer loading states
360
+
361
+ **UI Rendering**
362
+
363
+ - **Dynamic Table Height Calculation**:
364
+ - Table now calculates its height based on parent container dimensions
365
+ - Uses `clientHeight` - 42px for accurate layout
366
+ - Implemented in `onMounted` lifecycle for proper DOM measurement
367
+ - Improves responsive behavior across different screen sizes
368
+
369
+ ### 🎨 UI/UX Enhancements
370
+
371
+ **Table Customization Component**
372
+
373
+ - **Responsive Column Manager**:
374
+ - Max-height now uses CSS variable `--max-height` with dynamic value
375
+ - Defaults to `max(500px, 60vh)` but respects `tableHeight` prop
376
+ - Better adaptation to available screen space
377
+ - Prevents content overflow on smaller screens
378
+
379
+ - **Improved Search Experience**:
380
+ - Restructured template logic for better performance
381
+ - Added `hasSearch` computed property for cleaner conditional rendering
382
+ - New `filterQuery` computed property for efficient column filtering
383
+ - Separated search results from normal column list display
384
+ - "No results" message only shows when search is active
385
+
386
+ - **Cleaner Template Structure**:
387
+ - Removed nested v-if conditions
388
+ - Better separation between pinned and unpinned columns
389
+ - Improved readability and maintainability
390
+
391
+ **Visual Feedback**
392
+
393
+ - **Skeleton Loading**: Re-enabled skeleton loading animation (1.5s ease-in-out)
394
+ - Provides better visual feedback during data loading
395
+ - Smooth infinite animation for loading states
396
+
397
+ ### πŸ”§ Technical Improvements
398
+
399
+ **Code Quality**
400
+
401
+ - Removed unused imports (`Item`, `createCommonLink`, `inject`)
402
+ - Added `nextTick` import for proper DOM timing
403
+ - Better use of reactive computed properties
404
+ - Improved type safety with explicit return types
405
+
406
+ **Component Props**
407
+
408
+ - Added `tableHeight?: string` prop to `TableCustomization` component
409
+ - Passed down from parent `item-table.vue` for dynamic sizing
410
+ - Better prop naming and documentation
411
+
412
+ **Conditional Logic**
413
+
414
+ - Replaced complex nested conditions with cleaner computed properties
415
+ - `hasSearch` for search state detection
416
+ - `filterQuery` for filtered column list
417
+ - Better separation of concerns
418
+
419
+ ### πŸ“¦ Version Updates
420
+
421
+ - **@arbocollab/arbo-plugin-item-table**: Updated from `0.0.187` to `0.0.188`
422
+
423
+ ### Key Highlights
424
+
425
+ - πŸš€ **5x Faster Initial Load**: Pagination limit increased from 20 to 100 items
426
+ - πŸ“ **Better Responsiveness**: Dynamic height calculation adapts to screen size
427
+ - πŸ” **Smarter Search**: Improved column filtering with better performance
428
+ - ✨ **Visual Polish**: Re-enabled smooth skeleton loading animations
429
+
430
+ ## 0.0.184 - 2026-02-25
431
+
432
+ ### ✨ Features
433
+
434
+ - **Enhanced API Request Handling**: Implemented a new concurrency management system for API requests to replace the previous time-based throttling. This allows for more granular control over how many requests can be active simultaneously for specific endpoints, with excess requests being automatically queued. This improves application stability and responsiveness under heavy load.
435
+
436
+ ### βš™οΈ Chores
437
+
438
+ - Bumped package version to `0.0.184`.
439
+ - Added JSDoc documentation to the Axios configuration file for improved maintainability.
440
+
441
+ ## [0.0.183] - 2026-02-25
442
+
443
+ ### πŸš€ Features & Enhancements
444
+
445
+ **Tooltip System**
446
+
447
+ - **Global Registration:** Registered `tooltipDirective` globally to ensure consistent tooltip functionality across the entire application.
448
+
449
+ **Snackbar Component**
450
+
451
+ - **Enhanced Interactivity:** Added tooltip support to the Snackbar component for improved user interaction and accessibility.
452
+
453
+ **API Services**
454
+
455
+ - **Enhanced User Data:** Updated `ItemService` to include `last_completed_by` data in API calls, enabling richer user information in tooltips and UI components.
456
+
457
+ **Table Customization**
458
+
459
+ - **UI Improvements:**
460
+ - Added new icon to the Columns button for better visual identification.
461
+ - Reduced button size for a more compact appearance.
462
+ - Disabled column reordering while searching to prevent conflicts.
463
+
464
+ **Drag & Drop Items**
465
+
466
+ - **Disabled State Feedback:**
467
+ - Added tooltip to move handler indicating when reordering is disabled.
468
+ - Improved metric type display logic for better visual clarity.
469
+
470
+ **Label Renderer**
471
+
472
+ - **Enhanced Tooltips:** Updated `LabelRenderer` to display user avatar and name within tooltips for better context and information.
473
+
474
+ ### πŸ› Bug Fixes
475
+
476
+ **Item Creation (`CreateNewScene.vue`)**
477
+
478
+ - **Focus Management:** Improved focus handling and keyboard navigation, particularly for the `Tab` key to ensure smooth field traversal.
479
+ - **UI Stability:** Prevented the form from closing unexpectedly when clicking on a snackbar notification.
480
+
481
+ **Drag & Drop Items**
482
+
483
+ - **Metric Display:** Corrected metric type display logic in `DragDropItem` for accurate visual representation.
484
+
485
+ ## [0.0.181] - 2026-02-25
486
+
487
+ ### πŸš€ Features & Enhancements
488
+
489
+ **Version Management**
490
+
491
+ - Bumped version from 0.0.179 to 0.0.181.
492
+
493
+ **API Services**
494
+
495
+ - **Enhanced User Data:** Updated `ItemService` to include `last_completed_by` data in API calls for richer user information display.
496
+
497
+ **Table Customization**
498
+
499
+ - **UI Polish:**
500
+ - Added new icon to the Columns button.
501
+ - Reduced button size for better space efficiency.
502
+ - Disabled column reordering during search operations.
503
+
504
+ **Drag & Drop Items**
505
+
506
+ - **Tooltip Enhancement:** Added tooltip to move handler to inform users when reordering is disabled.
507
+ - **Metric Type Display:** Fixed metric type display logic for accurate visual representation.
508
+
509
+ **Label Renderer**
510
+
511
+ - **Enhanced Tooltips:** Improved tooltip content to display user avatar and name for better context.
512
+
513
+ ### πŸ› Bug Fixes
514
+
515
+ **Item Creation (`CreateNewScene.vue`)**
516
+
517
+ - **Keyboard Navigation:** Enhanced `Tab` key behavior for better focus management across form fields.
518
+ - **Click-Outside Handling:** Prevented form closure when interacting with snackbar notifications.
519
+
520
+ ## [0.0.175] - 2026-02-24
521
+
522
+ ### πŸš€ Features & Enhancements
523
+
524
+ **Calendar Components**
525
+
526
+ - **Keyboard Navigation:** Implemented comprehensive keyboard navigation (`Tab`, `Shift+Tab`, `Enter`, `Escape`, Arrow keys) across all calendar components (`Calendar.vue`, `MainCalendar.vue`, `CalendarNavigationControl.vue`).
527
+ - **Accessibility:** Improved accessibility by adding `data-index` attributes for programmatic focus, making month/year selections focusable, and ensuring a logical tab order.
528
+ - **Focus Management:** Centralized keyboard handling in a new `calendarNavigation.ts` utility, which traps focus within the calendar and allows seamless navigation between all interactive elements.
529
+ - **Bug Fixes:** Corrected an issue where the `Escape` key did not close the calendar popup.
530
+
531
+ **Item Creation (`CreateNewScene.vue`)**
532
+
533
+ - **UI Polish:** Adjusted the layout for action buttons for better alignment and responsiveness.
534
+ - **Error Handling:** Improved error handling during scene creation to prevent the form from closing unexpectedly on failure.
535
+
536
+ ## [0.0.174] - 2026-02-24
537
+
538
+ ### πŸš€ Features & Enhancements
539
+
540
+ **Snackbar Component**
541
+
542
+ - **Tooltip Clarity:** Updated tooltip text from "Copy to clipboard" to "Copy" for improved clarity and conciseness. The confirmation message is now "Copied".
543
+
544
+ ## [0.0.173] - 2026-02-23
545
+
546
+ ### πŸ› Bug Fixes
547
+
548
+ **Date Picker Components**
549
+
550
+ - **Calendar & DateInput:**
551
+ - Fixed an issue where pressing the `Tab` key within the date input fields would not correctly move focus to the next element outside the calendar popup.
552
+ - Improved keyboard navigation by trapping focus within the calendar popup and providing a clear exit path via the `Tab` key on the last input.
553
+ - Pressing `Escape` within a date input now correctly blurs the input and returns focus to the main calendar component.
554
+
555
+ **Item Creation (`CreateNewScene.vue`)**
556
+
557
+ - **Focus Management Improvements:**
558
+ - Removed `@blur` event handlers from action buttons ("Cancel", "Create & Keep", "Create") to prevent the `activeField` from being incorrectly set to `null` during keyboard navigation.
559
+ - Ensures more stable focus management and predictable keyboard navigation behavior.
560
+ - Added extensive console.trace and logging to better debug focus and active field changes.
561
+
562
+ ## [0.0.172] - 2026-02-23
563
+
564
+ ### πŸš€ Features & Enhancements
565
+
566
+ **Error Handling**
567
+
568
+ - **Offline Detection:** Implemented robust offline error handling across the application.
569
+ - The system now detects when the user is offline and prevents data-modifying requests (POST, PUT, DELETE).
570
+ - A single, clear notification ("You are currently offline. Please check your network connection.") is displayed to inform the user of the connection issue, avoiding multiple redundant error messages.
571
+
572
+ **Item Creation (`CreateNewScene.vue`)**
573
+
574
+ - **Improved Focus Management:** Refined keyboard navigation (`Tab`) to correctly cycle through all fields and buttons, including "Cancel", "Create & Keep", and "Create".
575
+ - **Enhanced User Feedback:** Error notifications are now shown if scene creation fails.
576
+ - **UI Polish:** Adjusted the layout and styling of action buttons for better alignment and a cleaner look. The validation rule requiring a status to be selected has been removed.
577
+
578
+ **Snackbar/Notifications**
579
+
580
+ - **UI Improvements:**
581
+ - The success icon color for interactive notifications now uses the correct theme variable for better consistency.
582
+ - Long messages now wrap correctly within the notification.
583
+ - Added a default success icon for interactive notifications that don't have one specified.
584
+
585
+ ### πŸ› Bug Fixes
586
+
587
+ - **Item Table (`item-table.vue`):**
588
+ - The "View" button in the "Scene Created" notification now correctly focuses on the newly created item in the table.
589
+ - Removed obsolete code related to the old inline item creation logic.
590
+ - **Date Picker:** Fixed an issue where pressing the `Tab` key within the date input fields would not correctly move focus to the next element outside the calendar popup.
591
+
592
+ ### πŸ”§ Code Quality
593
+
594
+ - **API Services:** Centralized offline error detection in the `ItemService` request handler to provide consistent error codes and messages.
595
+ - **State Management:** The notification store now specifically handles the `offline` error code to display a standardized message.
596
+
597
+ ## [0.0.171] - 2026-02-05
598
+
599
+ ### πŸš€ Features
600
+
601
+ **Item Table**
602
+
603
+ - **item-table.vue**
604
+ - Temporarily disabled `handleCreateNewItem` function
605
+ - Commented out new item creation from table interface for maintenance
606
+
607
+ **Snackbar Component**
608
+
609
+ - **Icon Enhancement:**
610
+ - Replaced hardcoded SVG icons with `<Icon>` component
611
+ - Now uses `CircleCheck` for success messages
612
+ - Now uses `CircleXMark` for error messages
613
+ - Better consistency across notification system
614
+
615
+ - **UI Improvements:**
616
+ - Refined layout alignment and spacing
617
+ - Updated copy button styling with border
618
+ - Enhanced icon color for better visibility
619
+
620
+ **Icon Component**
621
+
622
+ - **Debugging Enhancement:**
623
+ - Added `about` attribute to icon wrapper
624
+ - Displays icon source for easier debugging
625
+ - Improved developer experience when troubleshooting icons
626
+
627
+ ---
628
+
629
+ ## [0.0.151] - 2026-02-05
630
+
631
+ ### πŸ”§ API Services Package
632
+
633
+ **ItemService.ts - Added filterParams support across all bulk operations:**
634
+
635
+ **Updated Methods:**
636
+
637
+ - **bulkDateUpdate**
638
+ - Added `filterParams?: Record<string, any>` parameter
639
+ - Passes filter params via `params: filterParams` in request
640
+
641
+ - **updateAssignee**
642
+ - Added `filterParams` to payload type
643
+ - Includes filter params in bulk assign update request
644
+
645
+ - **removeAssignee**
646
+ - Passes `filterParams` through to API call
647
+
648
+ - **replaceAssignee**
649
+ - Merges `filterParams` with `replace: 1` flag
650
+ - Supports filtered replacement operations
651
+
652
+ - **addAssignee**
653
+ - Added `filterParams` parameter
654
+ - Includes in bulk assign update request
655
+
656
+ - **unAssignAll**
657
+ - Extracts and passes `filterParams` from payload
658
+
659
+ - **bulkStatusUpdate**
660
+ - Added `filterParams` to payload type
661
+ - Passes filter params in status update request
662
+
663
+ - **bulkMetricUpdate**
664
+ - Added `filterParams` parameter
665
+ - Includes in metric update request
666
+
667
+ - **getAssignableStatus**
668
+ - Added flexible params with `[key: string]: any` for extensibility
669
+
670
+ ### 🎨 UI Package
671
+
672
+ **BulkUpdate.vue**
673
+
674
+ - Injected `filterParams` from parent context
675
+ - Added `filterParams` to `additionalUpdateParams` computed property
676
+ - Conditionally includes filter params in all bulk operations
677
+
678
+ **DateUpdateButton.vue**
679
+
680
+ - Injected `filterParams` from context
681
+ - Added `filterParams` to update payload
682
+ - Supports entity-level date range updates with filtering
683
+
684
+ **StatusEditor.vue**
685
+
686
+ - Injected `filterParams` for status fetching and updates
687
+ - Spreads filter params in `getAssignableStatus` call
688
+ - Includes filter params in `handleUpdateStatus` payload
689
+ - Added console.log for debugging status update payload
690
+
691
+ **TableCustomization.vue**
692
+
693
+ - Removed debug template output: `{{ isDisableDrag }}`
694
+
695
+ ### πŸ”¨ Composables
696
+
697
+ **useAssignees.ts**
698
+
699
+ - Injected `filterParams` from parent context
700
+ - Added filter params to:
701
+ - `unAssignAll` operation
702
+ - `removeAssignee` operation
703
+ - All assignee update payloads
704
+
705
+ **useMetricUpdate.ts**
706
+
707
+ - Injected `filterParams` from context
708
+ - Added filter params to metric update payload
709
+ - Supports entity-level metric updates with filtering
710
+
711
+ ### πŸ“Š Item Table Package
712
+
713
+ **item-table.vue**
714
+
715
+ - Provided `filterParams` (`basicFilter`) to child components via `provide('filterParams', basicFilter)`
716
+ - Enables all descendant components to access current filter state
717
+
718
+ ### πŸ› Core Table Package
719
+
720
+ **CellFactory.ts**
721
+
722
+ - Added commented-out debug logging for `canEditField` method
723
+ - Prepared for future debugging without active console noise
724
+
725
+ **CellPermission.ts**
726
+
727
+ - Added console.log for debugging permission checks
728
+ - Fixed metric permission check to use `cellParam.colDef?.context`
729
+ - Improved conditional flow with else if chains
730
+ - Enhanced readability and maintainability
731
+
732
+ ### 🎯 Impact
733
+
734
+ **Benefits:**
735
+
736
+ - βœ… Entity-level bulk operations now respect active filters
737
+ - βœ… Improved accuracy for "select all" scenarios with filters applied
738
+ - βœ… Consistent filter parameter passing across all update types
739
+ - βœ… Better debugging capabilities with strategic logging
740
+
741
+ **Technical Debt:**
742
+
743
+ - Console logs added for debugging (should be removed in production)
744
+ - Filter params injection pattern used throughout (consider formalization)
745
+
746
+ ---
747
+
748
+ ## [0.0.138] - 2026-02-05
749
+
750
+ ### πŸ”§ Core Table Package
751
+
752
+ **CellFactory.ts - Enhanced Parameter Building**
753
+
754
+ - **buildCommonCellParams Refactor:**
755
+ - Now accepts `overrideParams` as either object or function
756
+ - Function-based override params receive full cell params for dynamic configuration
757
+ - Improved permission checks to use `params` instead of `params.colDef?.context`
758
+ - Better separation of concerns between cell params and column context
759
+
760
+ - **Permission Handling Improvements:**
761
+ - Fixed permission checks to read from cell params instead of column context
762
+ - Replaced `checkPermissionDisabled(...).type` with dedicated `checkEditType()` function
763
+ - Enhanced `cellEditorSelector` and `cellRendererSelector` to properly pass params
764
+ - Dynamic cell class naming with type-based classes (e.g., `editable`, `readOnly`)
765
+
766
+ **CellPermission.ts - Permission System Overhaul**
767
+
768
+ - **Updated Permission Checks:**
769
+ - Changed to accept cell params instead of context object
770
+ - Fixed permission reading from `cellParam?.data?.permissions`
771
+ - Improved `readOnly` logic for metric fields based on auth permissions
772
+ - Added stricter fallback to `readOnly: true` when permissions are missing
773
+ - Better handling of formula metrics and permission levels
774
+
775
+ ### 🎨 UI Package
776
+
777
+ **DragDropItem.vue - Metric Type Indicators**
778
+
779
+ - **Visual Indicators:**
780
+ - Added metric type badges with icons:
781
+ - β˜… for rating metrics
782
+ - Ζ’x for formula metrics
783
+ - # for number metrics
784
+ - Added Woohoo metric indicator with custom SVG icon
785
+ - Added Point metric indicator with custom SVG icon
786
+
787
+ - **Selection Management:**
788
+ - Implemented `isDisableNewCheck` prop to prevent selecting more than 5 metrics
789
+ - Added `disableDrag` and `disableCheckbox` props for granular control
790
+ - Better distinction between drag and checkbox disable states
791
+ - Updated grid layout to accommodate new metric indicators
792
+
793
+ **TableCustomization.vue - 5 Metric Limit**
794
+
795
+ - **Warning System:**
796
+ - Added warning banner when 5 metric columns are selected
797
+ - Implemented `isDisableNewCheck` to enforce 5-metric limit
798
+ - Added `numberOfMetricSelected` computed property for tracking
799
+
800
+ - **Enhanced UX:**
801
+ - Separated drag disable from checkbox disable logic
802
+ - Provided `isDisableNewCheck` to child components via provide
803
+ - Better user feedback when metric limit is reached
804
+
805
+ **CreateNewScene.vue - Quick Actions**
806
+
807
+ - **New Action Buttons:**
808
+ - Added `AssigneeUpdateButton` for quick assignee selection
809
+ - Added `StatusUpdateButton` for quick status changes
810
+ - Added `DateUpdateButton` for quick date range setup
811
+ - Added "continue creation" checkbox option
812
+ - Updated grid layout to accommodate new action buttons
813
+
814
+ - **Behavior Changes:**
815
+ - Disabled click-outside behavior (commented out for better UX)
816
+ - Better state management during scene creation
817
+
818
+ **Checkbox.vue - Size System Refactor**
819
+
820
+ - **CSS Variable System:**
821
+ - Refactored size handling using `--input-size` CSS variable
822
+ - Improved consistency across small/medium/large variants
823
+ - Cleaner size calculation and application
824
+
825
+ **Renderer Components - Default Read-Only**
826
+
827
+ - **Security Improvements:**
828
+ - Set default `readOnly: true` for:
829
+ - `AssigneeGroupRenderer`
830
+ - `DateRangeRenderer`
831
+ - `MetricRenderer`
832
+ - `StatusRenderer`
833
+ - Prevents accidental edits when permissions are not explicitly set
834
+
835
+ ### πŸ› Bug Fixes
836
+
837
+ **Permission System**
838
+
839
+ - Fixed permission reading from row data instead of column context
840
+ - Fixed row permission updates in `useRowUpdater.ts`
841
+ - Better fallback handling when permissions are missing
842
+ - Consistent permission checks across all cell types
843
+
844
+ **Code Quality**
845
+
846
+ - Removed excessive `console.log` statements across multiple files
847
+ - Cleaner logging for debugging without noise
848
+ - Better error handling in permission checks
849
+
850
+ ### πŸ”§ Technical Improvements
851
+
852
+ **Type Safety**
853
+
854
+ - Better typing for override params (object | function)
855
+ - Improved cell params type inference
856
+ - Enhanced permission type definitions
857
+
858
+ **Code Organization**
859
+
860
+ - Clearer separation of permission logic
861
+ - Better function naming with `checkEditType()`
862
+ - More maintainable cell renderer/editor selection
863
+
864
+ **Performance**
865
+
866
+ - Reduced unnecessary permission checks
867
+ - Better caching of computed permission states
868
+ - Optimized cell class name generation
869
+
870
+ ### πŸ“¦ Version Updates
871
+
872
+ - **@arbocollab/ag-grid-ui-components:** Updated from `0.0.23` to `0.0.24`
873
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.137` to `0.0.138`
874
+
875
+ ### Key Highlights
876
+
877
+ - πŸ” **Better Permission Handling:** Moved from column context to cell params for more accurate checks
878
+ - 🎯 **5-Metric Limit Enforcement:** Visual warnings and checkbox disabling when limit reached
879
+ - ⚑ **Quick Actions:** New buttons for faster scene creation with assignees, status, and dates
880
+ - 🎨 **Metric Type Indicators:** Clear visual badges for different metric types
881
+ - πŸ›‘οΈ **Security Defaults:** All renderers now default to read-only for safer operation
882
+
883
+ ---
884
+
885
+ ## [0.0.137] - 2026-02-05
886
+
887
+ ### πŸš€ Features
888
+
889
+ **Select All Functionality - Complete Implementation**
890
+
891
+ - **BulkUpdate Component:**
892
+ - Added "Select All" button when partial selection meets criteria
893
+ - Button appears when:
894
+ - Selection is indeterminate (some items selected)
895
+ - Total rows exceed selected count
896
+ - All visible rows are selected
897
+ - Enhanced UI layout with fixed width (350px) for better alignment
898
+ - Improved entity name display with tooltip support
899
+ - Truncated long entity names with ellipsis (max-width: 225px for "All in", 100px for "Select all")
900
+ - Added `totalRows` and `visibleRows` props for selection logic
901
+ - Emits `selectAll` event to trigger full selection
902
+
903
+ - **State Management:**
904
+ - Moved `selectionStatus` from local component state to `bulkUpdateStore`
905
+ - Centralized selection state management across components
906
+ - Added `handelSelectAll()` action to bulk update store
907
+ - Improved state consistency between HeaderCheckbox and BulkUpdate components
908
+
909
+ - **HeaderCheckbox Component:**
910
+ - Refactored to use shared `selectionStatus` from store
911
+ - Removed local `currentState` ref in favor of global state
912
+ - Better synchronization with bulk update operations
913
+ - Consistent selection state across all components
914
+
915
+ - **ItemTable Integration:**
916
+ - Added `handleSelectAll()` method to useItemTable composable
917
+ - Exposed `isSelectAll` ref for tracking select all state
918
+ - Wired up `@select-all` event handler
919
+ - Passed `totalRows` and `visibleRows` to BulkUpdate component
920
+
921
+ ### 🎨 UI/UX Improvements
922
+
923
+ - **BulkUpdate Component:**
924
+ - Better text wrapping with `line-height: 14px`
925
+ - Flexbox alignment for selected count display
926
+ - Improved spacing and visual hierarchy
927
+ - Entity name tooltip for long names
928
+
929
+ - **MetricBulkItem:**
930
+ - Moved padding from `.metric-item` to `.metric-label` for better spacing
931
+ - Improved click target area for metric items
932
+
933
+ ### πŸ”§ Code Quality
934
+
935
+ - Removed commented test code for entity name
936
+ - Better type safety with `UseItemTableReturn` interface
937
+ - Improved component organization and state management
938
+ - Consistent event naming conventions
939
+
940
+ ### πŸ“ Type Updates
941
+
942
+ - Added `isSelectAll` and `handleSelectAll` to `UseItemTableReturn` interface
943
+ - Enhanced `BulkProps` with `totalRows` and `visibleRows` properties
944
+
945
+ ---
946
+
947
+ ## [0.0.136] - 2026-02-05
948
+
949
+ ### πŸš€ Features
950
+
951
+ **RatingComponent - Enhanced Hover & State Handling**
952
+
953
+ - **Improved Hover Behavior:**
954
+ - Added `isHoverOnIcon` ref to track hover state
955
+ - Implemented `handleMouseEnter()` and `handleMouseLeave()` methods
956
+ - Enhanced `isFilled()` logic to respect hover state
957
+ - Prevents filled stars from showing during hover interaction
958
+
959
+ - **Better Visual Feedback:**
960
+ - Hover effect now correctly overrides filled state
961
+ - Improved hover color handling with CSS specificity
962
+ - Added separate hover state for filled items
963
+
964
+ - **CSS Enhancements:**
965
+ - Changed display from `flex` to `grid` for better alignment
966
+ - Removed unused `temporary-fill` class
967
+ - Enhanced color transitions for smoother visual feedback
968
+ - Fixed hover state priority with proper CSS selectors
969
+
970
+ - **State Management:**
971
+ - Cleaner separation between filled and hover states
972
+ - More predictable behavior when interacting with rating stars
973
+ - Better disabled/readOnly state handling in hover scenarios
974
+
975
+ ### πŸ”§ Code Quality
976
+
977
+ - Removed commented-out focus styles
978
+ - Improved CSS specificity for state combinations
979
+ - Added `!important` flags where needed for disabled state consistency
980
+
981
+ ---
982
+
983
+ ## [0.0.135] - 2026-02-05
984
+
985
+ ### πŸš€ Features
986
+
987
+ **Filter System Enhancement**
988
+
989
+ - **New Parameter: `preflight_status`**
990
+ - Added `preflight_status` parameter to ItemService and filter logic
991
+ - Replaces `status_eq` as the default filter parameter
992
+ - Default value: `'1'` (active items only)
993
+
994
+ **FilterBox Component**
995
+
996
+ - **Improved Archive Status Logic:**
997
+ - No selection: Uses `preflight_status: '1'` (active items only)
998
+ - Single selection (archived): `status_eq: '0'`
999
+ - Single selection (active): `status_eq: '1'`
1000
+ - Both selected: `status_eq: '0,1'` (all items)
1001
+ - Updated clear filter action to use `preflight_status: '1'` instead of `status_eq`
1002
+
1003
+ **ItemTable Component**
1004
+
1005
+ - Changed default filter from `status_eq: '1'` to `preflight_status: '1'`
1006
+ - Better alignment with new filtering system
1007
+
1008
+ **ItemService API**
1009
+
1010
+ - Added `preflight_status` parameter support in `getItemList()` method
1011
+ - Maintains backward compatibility with existing `status_eq` parameter
1012
+
1013
+ ### πŸ”§ Code Quality
1014
+
1015
+ - Removed unused `node:console` import from item-table.vue
1016
+ - Improved filter parameter naming consistency
1017
+
1018
+ ---
1019
+
1020
+ ## [0.0.134] - 2026-02-05
1021
+
1022
+ ### πŸš€ Features
1023
+
1024
+ **Tooltip Directive - Style Injection**
1025
+
1026
+ - **Automatic Style Injection:**
1027
+ - Styles are now automatically injected into `<head>` on directive initialization
1028
+ - Uses unique ID `'arbo-tooltip-styles'` to prevent duplicate injections
1029
+ - Checks for existing styles before injecting
1030
+ - Injected once globally, not per tooltip instance
1031
+
1032
+ **Tooltip Themes:**
1033
+
1034
+ - All themes use CSS custom properties for dynamic theming
1035
+ - Themes included: `arbo`, `warning`, `error`, `light`
1036
+ - Arrow colors automatically match tooltip background for all placements
1037
+
1038
+ **Implementation Details:**
1039
+
1040
+ - `injectTooltipStyles()` function runs in `beforeMount` directive hook
1041
+ - Pure CSS converted from SCSS
1042
+ - Global application of styles ensures consistent tooltip appearance
1043
+
1044
+ ## [0.0.133] - 2026-02-05
1045
+
1046
+ ### πŸ› Bug Fixes
1047
+
1048
+ **Filter System**
1049
+
1050
+ - **FilterBox Component:**
1051
+ - Fixed archive status parameter handling with improved `status_eq` logic
1052
+ - Single selection: `'0'` (archived) or `'1'` (active)
1053
+ - Both selected: `'0,1'` (both archived and active)
1054
+ - None selected: `'1'` (default to active only when no other filters)
1055
+ - Moved archive status parameters after other filters for proper precedence
1056
+
1057
+ ---
1058
+
1059
+ ## [0.0.132] - 2026-02-05
1060
+
1061
+ ### πŸš€ Features
1062
+
1063
+ **LabelEditor Component**
1064
+
1065
+ - **Save on Blur Functionality:**
1066
+ - Added `saveOnBlur` prop (defaults to `true`)
1067
+ - Implemented `handleBlur()` method with conditional save/cancel logic
1068
+ - Added `isCancelling` flag to prevent blur save after escape key
1069
+ - Enhanced `handleSave()` with value change detection
1070
+ - Auto-selects text when entering edit mode
1071
+
1072
+ **Exposed Methods:**
1073
+
1074
+ - `focus()` - Enter edit mode programmatically
1075
+ - `blur()` - Programmatically blur input
1076
+ - `save()` - Save current value
1077
+ - `cancel()` - Cancel edit and revert
1078
+
1079
+ **FilterBox Component**
1080
+
1081
+ - Added white background color for better visibility
1082
+ - Improved visual consistency
1083
+
1084
+ **Tooltip System Enhancements**
1085
+
1086
+ - **Theme Support:**
1087
+ - Enhanced tooltip themes with CSS variables
1088
+ - Added `light` theme with white background (#fff) and dark text (#232323)
1089
+ - Improved color consistency across all themes (arbo, warning, error, light)
1090
+ - Fixed arrow colors to match tooltip background for all placements (top, bottom, left, right)
1091
+
1092
+ **Tooltip Styles**
1093
+
1094
+ - Added CSS variable system for dynamic theming:
1095
+ - `--tooltip-background-color`
1096
+ - `--tooltip-text-color`
1097
+ - Improved visual consistency across all tooltip variants
1098
+
1099
+ ---
1100
+
1101
+ ## [0.0.131] - 2026-02-05
1102
+
1103
+ ### πŸš€ Features
1104
+
1105
+ **MetricUpdateButton**
1106
+
1107
+ - **UI Improvements:**
1108
+ - Updated description formatting: removed parentheses from morpheme display
1109
+ - Changed from `(morpheme_value)` to `morpheme_value`
1110
+ - Cleaner, more professional appearance
1111
+
1112
+ **UserProfileDirective**
1113
+
1114
+ - **UX Enhancement:**
1115
+ - Added `onInsightClick` handler to auto-hide tooltip when insight link is clicked
1116
+ - Improved user experience by closing profile popup on navigation
1117
+ - Prevents orphaned tooltips after navigation
1118
+
1119
+ ---
1120
+
1121
+ ## [0.0.130] - 2026-02-05
1122
+
1123
+ ### πŸš€ Features
1124
+
1125
+ **MetricBulkItem Component - Complete Refactor**
1126
+
1127
+ **Keyboard Navigation:**
1128
+
1129
+ - Added comprehensive keyboard support:
1130
+ - `Escape`: Focus on search and close editor
1131
+ - `Tab`: Close editor if open
1132
+ - `Enter`: Open editor if closed
1133
+ - `ArrowDown`/`ArrowUp`: Navigate to sibling items (only when editor is closed)
1134
+ - Improved event handling with handler map pattern
1135
+ - Better event propagation control
1136
+
1137
+ **Component Architecture:**
1138
+
1139
+ - Extracted reusable methods:
1140
+ - `toggleEditor()` - Toggle editor state
1141
+ - `closeEditor()` - Close and reset editor
1142
+ - `openEditor()` - Open and focus editor
1143
+ - Better state management with `metricRef` template ref
1144
+ - Removed manual event listeners in favor of declarative template binding
1145
+ - Added `tabindex="0"` for proper keyboard accessibility
1146
+
1147
+ **Events:**
1148
+
1149
+ - Added `focusOnSearch` event for Escape key handling
1150
+ - Added `openSibling` event with direction ('up' | 'down') for arrow key navigation
1151
+ - Renamed `loseFocus` to `cancel` for semantic clarity
1152
+ - Improved event naming consistency
1153
+
1154
+ **Styling:**
1155
+
1156
+ - Added 8px gap to metric label for better spacing
1157
+ - Fixed text color to use CSS variable `var(--color-text-primary)`
1158
+ - Added focus outline removal for cleaner appearance
1159
+ - Enhanced metric-morpheme styling:
1160
+ - Italic font style
1161
+ - Secondary text color
1162
+ - Added text overflow handling with ellipsis
1163
+
1164
+ **MetricEditor Component**
1165
+
1166
+ - Enhanced keyboard support:
1167
+ - Escape key closes editor and emits cancel event
1168
+ - Better integration with parent components
1169
+ - Improved error message display system
1170
+ - Better validation flow with `@onValidation` event
1171
+ - Removed inline error display (moved to tooltip-based system)
1172
+
1173
+ **MetricEditorInput Component**
1174
+
1175
+ **Validation System:**
1176
+
1177
+ - Added `showInlineError` prop (defaults to `false`)
1178
+ - Implemented tooltip-based error display:
1179
+ - Shows on create when validation fails
1180
+ - Uses 'error' theme with red background (#fee4e2)
1181
+ - Always visible when invalid (`alwaysShow: true`)
1182
+ - Max width: 200px for readability
1183
+ - Added `validateData()` method for real-time validation
1184
+ - Added `getErrsMessage()` helper for contextual error messages
1185
+
1186
+ **Validation Integration:**
1187
+
1188
+ - Dynamic tooltip props based on validation state
1189
+ - Auto-shows tooltip when validation fails
1190
+ - Hides tooltip when valid or using inline errors
1191
+ - Seamless integration with parent components
1192
+
1193
+ **MetricUpdateButton**
1194
+
1195
+ - **Initialization:**
1196
+ - Changed to load metrics on mount instead of on visibility
1197
+ - Better performance with eager loading
1198
+ - Improved user experience with immediate data availability
1199
+ - Added close event handling for cleanup
1200
+ - Improved template structure and organization
1201
+ - Better metric title display without overflow issues
1202
+
1203
+ **SearchList Component**
1204
+
1205
+ - **Programmatic Selection:**
1206
+ - Added `selectIndex(index)` method for external control
1207
+ - Enables keyboard navigation from parent components
1208
+ - Better integration with MetricBulkItem arrow key navigation
1209
+
1210
+ **Tooltip Directive Enhancements**
1211
+
1212
+ **New Properties:**
1213
+
1214
+ - `showOnCreate` - Shows tooltip immediately after creation
1215
+ - `alwaysShow` - Keeps tooltip visible permanently
1216
+
1217
+ **Behavior:**
1218
+
1219
+ - **alwaysShow Mode:**
1220
+ - Changes trigger to 'manual'
1221
+ - Prevents hiding on any interaction
1222
+ - Auto-shows on creation
1223
+ - Disables hideOnClick
1224
+ - Returns false in onShow/onHide callbacks
1225
+ - **showOnCreate Mode:**
1226
+ - Shows tooltip immediately after creation
1227
+ - Uses nextTick() for proper DOM timing
1228
+ - Works with both create and update flows
1229
+
1230
+ **Implementation:**
1231
+
1232
+ - Applied to both `createTooltipInstanceWithClass()` and `updateTooltipInstance()`
1233
+ - Type-safe checks for object-based params
1234
+ - Consistent behavior across directive lifecycle
1235
+
1236
+ **Styles & CSS**
1237
+
1238
+ **Error Styling:**
1239
+
1240
+ - Added `.error-text` class:
1241
+ - Font size: 12px
1242
+ - Color: #d92d20 (error red)
1243
+ - Max width: 100%
1244
+ - White-space: break-spaces
1245
+ - Consistent error messaging across components
1246
+
1247
+ **Tooltip Themes:**
1248
+
1249
+ - Unified tooltip styling with CSS variables
1250
+ - Theme definitions:
1251
+ - `arbo`: Dark background (#333) with white text
1252
+ - `warning`: Orange background (#ff5200) with white text
1253
+ - `error`: Light red background (#fee4e2) with dark red text (#d92d20)
1254
+ - `light`: White background (#fff) with dark text (#232323)
1255
+ - Arrow colors automatically match background for all placements
1256
+
1257
+ **Animation:**
1258
+
1259
+ - Added slide transition for MetricEditor:
1260
+ - Transform: translateY(-80%)
1261
+ - Opacity fade
1262
+ - 0.3s ease timing
1263
+
1264
+ ---
1265
+
1266
+ ## [0.0.129] - 2026-02-04
1267
+
1268
+ ### πŸš€ Features
1269
+
1270
+ **Input Validation System**
1271
+
1272
+ **Event Refactoring:**
1273
+
1274
+ - Changed validation event from `handleChange` to `onValidation` across:
1275
+ - `InputText.vue`
1276
+ - `MetricEditor.vue`
1277
+ - `MetricEditorInput.vue`
1278
+ - Better semantic naming for validation flow
1279
+ - Clearer separation between change and validation events
1280
+
1281
+ **MetricEditorWrapper**
1282
+
1283
+ - **Error Handling:**
1284
+ - Added `onValidation` event handler
1285
+ - Integrated validation with tooltip display system
1286
+ - Added error tooltip with 'error' theme
1287
+ - Tooltip shows validation errors with `alwaysShow: true`
1288
+ - Better user feedback for validation failures
1289
+
1290
+ **Tooltip Directive**
1291
+
1292
+ - **Error Theme:**
1293
+ - Added 'error' theme support
1294
+ - Red background (#fee4e2)
1295
+ - Dark red text (#d92d20)
1296
+ - Proper arrow colors for all placements
1297
+ - **alwaysShow Enhancement:**
1298
+ - Enhanced support in `useTippyComposable`
1299
+ - Prevents tooltip from hiding when enabled
1300
+ - Better persistence for error messages
1301
+
1302
+ ---
1303
+
1304
+ ## [0.0.128] - 2026-02-04
1305
+
1306
+ ### πŸš€ Features
1307
+
1308
+ **Metric Editor - Enhanced Validation System**
1309
+
1310
+ **Real-time Validation:**
1311
+
1312
+ - Added live validation for metric number inputs
1313
+ - Displays contextual error messages based on validation rules
1314
+ - Disabled confirm button when input is invalid
1315
+ - Visual error state with red border (#d92d20)
1316
+
1317
+ **Validation Types:**
1318
+
1319
+ - Range validation: Shows "Enter a value between {min} and {max}"
1320
+ - Excluded values: Shows "These values are not allowed: {values}"
1321
+ - Exact values: Shows "Value is not allowed"
1322
+ - Empty/null values are always considered valid
1323
+
1324
+ **User Experience:**
1325
+
1326
+ - Error messages appear below the input field
1327
+ - Confirm button is disabled until valid input is provided
1328
+ - Prevents submission of invalid data
1329
+ - Clear, contextual error messaging
1330
+
1331
+ **Metric Editor Input**
1332
+
1333
+ **Enhanced Change Handling:**
1334
+
1335
+ - Added handleChange event emission for real-time validation
1336
+ - Removed blocking validation on save to allow error display
1337
+ - Better separation of validation and save logic
1338
+ - Maintains cached value for revert functionality
1339
+
1340
+ **Input Text Component**
1341
+
1342
+ **Validation Improvements:**
1343
+
1344
+ - Added handleChange event emission
1345
+ - Enhanced validation logging for debugging
1346
+ - Better error state tracking with watcher
1347
+ - Real-time validation feedback
1348
+
1349
+ ### πŸ”§ Bug Fixes
1350
+
1351
+ **Validation Logic Corrections**
1352
+
1353
+ - Fixed inverted validation logic in validatorFnc:
1354
+ - Range validation: Now correctly validates if value is within range (was inverted with !isNumber)
1355
+ - Not validation: Now correctly excludes specified values
1356
+ - Exact validation: Now correctly validates if value matches allowed values
1357
+ - Changed to use Math.floor() for integer comparison
1358
+
1359
+ **DisplayWrapper Error State:**
1360
+
1361
+ - Re-enabled error border color (#d92d20)
1362
+ - Better visual indication of validation errors
1363
+
1364
+ ### 🎨 Style Improvements
1365
+
1366
+ **Error Messaging**
1367
+
1368
+ - Added global .error-text class for consistent error styling
1369
+ - Font size: 12px
1370
+ - Color: #d92d20 (error red)
1371
+ - Applied to validation error messages
1372
+
1373
+ **Visual Feedback**
1374
+
1375
+ - Error border color consistently applied across components
1376
+ - Better distinction between valid and invalid states
1377
+
1378
+ ### πŸ”§ Technical Improvements
1379
+
1380
+ **Validation Flow**
1381
+
1382
+ - Centralized validation in MetricEditor component
1383
+ - Real-time validation on input change
1384
+ - Error message generation based on metric configuration
1385
+ - Better state management with isValid ref
1386
+
1387
+ **Code Quality**
1388
+
1389
+ - Added validation logging for debugging
1390
+ - Better separation of concerns between input and validation
1391
+ - Cleaner event handling chain
1392
+ - Improved type safety with validation checks
1393
+
1394
+ **Developer Experience**
1395
+
1396
+ - Changed dev entity ID for testing purposes
1397
+ - Better console logging for validation debugging
1398
+ - More maintainable validation logic
1399
+
1400
+ ### πŸ“¦ Version Updates
1401
+
1402
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.127` to `0.0.128`
1403
+
1404
+ ---
1405
+
1406
+ ## [0.0.127] - 2026-02-04
1407
+
1408
+ ### πŸš€ Features
1409
+
1410
+ **Input Text Component - Number Input Enhancement**
1411
+
1412
+ **Scientific Notation Prevention:**
1413
+
1414
+ - Added keydown blocking for 'e' and 'E' keys in number input type
1415
+ - Prevents users from entering scientific notation (e.g., 1e9)
1416
+ - Enhanced number validator to explicitly remove scientific notation characters
1417
+ - Only allows digits (0-9), decimal point (.), and minus sign (-) in number inputs
1418
+
1419
+ ### πŸ”§ Technical Improvements
1420
+
1421
+ **Input Validation**
1422
+
1423
+ - Improved regex validation in number input validator
1424
+ - Better comment documentation explaining scientific notation removal
1425
+ - Prevents invalid number formats at both keyboard and validation levels
1426
+
1427
+ **User Experience**
1428
+
1429
+ - Cleaner number input experience
1430
+ - Prevents confusing scientific notation entry
1431
+ - More predictable number input behavior
1432
+
1433
+ ### πŸ“¦ Version Updates
1434
+
1435
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.126` to `0.0.127`
1436
+
1437
+ ---
1438
+
1439
+ ## [0.0.126] - 2026-02-04
1440
+
1441
+ ### πŸš€ Features
1442
+
1443
+ **Rating Component**
1444
+
1445
+ **Enhanced Title Attribute Calculation:**
1446
+
1447
+ - Updated rating star title calculation from params.maxRating - value to params.maxRating - value + 1
1448
+ - Provides more accurate tooltip information for rating values
1449
+ - Better user feedback when hovering over rating stars
1450
+
1451
+ ### πŸ”§ Technical Improvements
1452
+
1453
+ **User Experience**
1454
+
1455
+ - Improved accessibility with more accurate ARIA labels
1456
+ - Better tooltip information for rating components
1457
+
1458
+ ### πŸ“¦ Version Updates
1459
+
1460
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.125` to `0.0.126`
1461
+
1462
+ ### Key Highlights
1463
+
1464
+ - ✨ **Better Rating Tooltips:** More accurate hover information for rating components
1465
+
1466
+ ---
1467
+
1468
+ ## [0.0.125] - 2026-02-04
1469
+
1470
+ ### πŸ”§ Bug Fixes & Improvements
1471
+
1472
+ **Metric Update Button**
1473
+
1474
+ - Removed Unused Event Handler:
1475
+ - Removed `@close="hide"` event handler from SearchList component
1476
+ - Cleaner event propagation and better dropdown management
1477
+ - Prevents potential conflicts with internal close handling
1478
+
1479
+ ## [0.0.124] - 2026-02-04
1480
+
1481
+ ### πŸš€ Features
1482
+
1483
+ **Filter Box Enhancements**
1484
+
1485
+ - Improved visual design with dynamic padding, borders, and hover effects for active filters
1486
+ - Updated archive status handling: default to empty array, simplified counting, and better parameter logic for single/both/none selections
1487
+ - Enhanced "Clear All" behavior: truly clears filters while maintaining active items view (status_eq: '1')
1488
+
1489
+ **Filter Archive Status Component**
1490
+
1491
+ - Changed default state to empty array, updated reset() to clear selection
1492
+ - Added animated chevron icons and improved display labels
1493
+
1494
+ **Filter Status & Assignee Components**
1495
+
1496
+ - Added animated chevron icons for consistent dropdown interactions
1497
+ - Refined layouts and removed unnecessary options for streamlined UX
1498
+
1499
+ **Global Style Improvements**
1500
+
1501
+ - Introduced .icon-up class with 180-degree rotation animation for dropdown chevrons
1502
+
1503
+ ### πŸ”§ Technical Improvements
1504
+
1505
+ - Removed DEFAULT_STATE constant for cleaner state management
1506
+ - Unified dropdown animations and improved clear vs. reset distinctions
1507
+
1508
+ ### πŸ“¦ Version Updates
1509
+
1510
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.123` to `0.0.124`
1511
+
1512
+ ### Key Highlights
1513
+
1514
+ - 🎨 **Enhanced Filter UI:** Better visuals, animations, and predictable behavior
1515
+ - πŸ”„ **Improved Archive Handling:** Flexible status filtering with sensible defaults
1516
+ - ⚑ **Cleaner Code:** Removed constants and unified interactions
1517
+
1518
+ ---
1519
+
1520
+ ## [0.0.122] - 2026-02-04
1521
+
1522
+ ### πŸš€ Features
1523
+
1524
+ **Filter System Enhancements**
1525
+
1526
+ - **FilterBox Improvements:**
1527
+ - Added default filter state: status_eq: '1' (active items only)
1528
+ - Improved "Clear All" behavior: now resets to default active status instead of clearing completely
1529
+ - Enhanced filter count logic: excludes default archive status from active filter count
1530
+ - Better state management with DEFAULT_STATE constant
1531
+ - Improved revert behavior: falls back to default state when no cache exists
1532
+
1533
+ - **FilterArchiveStatus Component:**
1534
+ - Added reset() method to restore default state ('active')
1535
+ - Changed default selected value from empty to ['active']
1536
+ - Better distinction between clear() (removes all) and reset() (restores default)
1537
+ - Improved initial state handling
1538
+
1539
+ - **Item Table Integration:**
1540
+ - Set default basic filter to show active items only: { status_eq: '1' }
1541
+ - Better alignment with filter system defaults
1542
+ - Improved initial data loading with sensible defaults
1543
+
1544
+ ### πŸ”§ Technical Improvements
1545
+
1546
+ **Filter State Management**
1547
+
1548
+ - Consistent default state across all filter components
1549
+ - Better handling of archive status in filter count calculations
1550
+ - Improved cache and state synchronization
1551
+ - Clearer separation between clearing and resetting filters
1552
+
1553
+ **Code Quality**
1554
+
1555
+ - Removed unused template code in Item Table component
1556
+ - Added DEFAULT_STATE constant for better maintainability
1557
+ - Improved method naming with reset() vs clear() distinction
1558
+
1559
+ **User Experience**
1560
+
1561
+ - Users now see active (non-archived) items by default
1562
+ - "Clear All" maintains sensible defaults instead of showing all items
1563
+ - More predictable filter behavior across the application
1564
+
1565
+ ### πŸ“¦ Version Updates
1566
+
1567
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.121` to `0.0.122`
1568
+
1569
+ ### Key Highlights
1570
+
1571
+ - 🎯 **Smart Default Filters:** Active items shown by default with proper state management
1572
+ - πŸ”„ **Better Reset Behavior:** Clear All now resets to sensible defaults instead of removing all filters
1573
+ - πŸ“Š **Improved Filter Counting:** Default archive status no longer counted as an active filter
1574
+
1575
+ ---
1576
+
1577
+ ## [0.0.121] - 2026-02-04
1578
+
1579
+ ### πŸš€ Features
1580
+
1581
+ **User Profile Components**
1582
+
1583
+ - **AvatarProfile Enhancements:**
1584
+ - Added `apiUpdateFunction` prop for dynamic user data fetching
1585
+ - Simplified component by removing internal API service logic
1586
+ - Better prop passing for user profile updates
1587
+ - Improved integration with MiniPeopleCard and filter components
1588
+
1589
+ **Tooltip System**
1590
+
1591
+ - **Enhanced Tooltip Directive:**
1592
+ - Added lifecycle hooks: `onCreate` and `onMount` with debug logging
1593
+ - Improved tooltip content styling with word-break and max-width (500px)
1594
+ - Better handling of `extra-padding` class
1595
+ - Cleaned up event listener logic for better performance
1596
+ - Simplified update logic with consolidated destroy conditions
1597
+
1598
+ **Metric Editor Improvements**
1599
+
1600
+ - **MetricEditorInput:**
1601
+ - Changed to auto-emit mode by default (`autoEmit: true`)
1602
+ - Added cancel event emission
1603
+ - Enhanced keyboard handling (Escape now triggers cancel)
1604
+ - Better blur and cancel event separation
1605
+ - Improved logging for debugging
1606
+
1607
+ - **MetricEditorWrapper:**
1608
+ - Added error recovery: reverts to original value on update failure
1609
+ - Improved cancel handling with proper event propagation
1610
+
1611
+ - **MetricEditor:**
1612
+ - Added Escape key support to close editor
1613
+ - Enhanced keyboard navigation
1614
+
1615
+ **Metric Update Button**
1616
+
1617
+ - **MetricBulkItem:**
1618
+ - Added tooltip support for metric names
1619
+ - Conditional morpheme display (only shows when open)
1620
+ - Improved label styling
1621
+ - Better console logging
1622
+
1623
+ - **MetricUpdateButton:**
1624
+ - Changed initialization: now loads metrics on mount instead of on visibility
1625
+ - Added close event handling
1626
+ - Cleaned up template code
1627
+ - Improved metric title display without overflow constraints
1628
+
1629
+ **Filter Components**
1630
+
1631
+ - **FilterAssignee:**
1632
+ - Integrated `getUserInformation` helper for consistent API calls
1633
+ - Added `apiUpdateFunction` to all AvatarProfile instances
1634
+ - Better workspace ID handling via SessionStorageHelper
1635
+ - Improved user profile popups across Me, selected, and search results
1636
+
1637
+ **Assignee Components**
1638
+
1639
+ - **AssigneeGroupEditor & AssigneeGroupRenderer:**
1640
+ - Added `getUserInformation` helper for API integration
1641
+ - Passed `apiUpdateFunction` to AvatarProfile components
1642
+ - Consistent user information fetching across all avatar instances
1643
+ - Better separation of API logic
1644
+
1645
+ ### πŸ”§ Technical Improvements
1646
+
1647
+ **Type Safety**
1648
+
1649
+ - Updated `MiniProfileProps` type: `apiUpdateFunction` now returns `Promise<ApiUserBasicInforResponse | null>` (was `undefined`)
1650
+ - Better type consistency across user profile components
1651
+ - Improved null handling
1652
+
1653
+ **Code Quality**
1654
+
1655
+ - Removed unused template code in MetricUpdateButton
1656
+ - Cleaned up inline style constraints
1657
+ - Better event handler naming and organization
1658
+ - Consistent use of SessionStorageHelper for workspace context
1659
+
1660
+ **Developer Experience**
1661
+
1662
+ - Enhanced logging for tooltip lifecycle
1663
+ - Better debugging capabilities in metric components
1664
+ - Clearer event flow in editor components
1665
+
1666
+ ### πŸ“¦ Version Updates
1667
+
1668
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.120` to `0.0.121`
1669
+
1670
+ ### Key Highlights
1671
+
1672
+ - ✨ **Unified User Profile Data Fetching:** All avatar components now use a consistent API update function pattern
1673
+ - 🎯 **Better Keyboard Support:** Enhanced Escape key handling across metric editors
1674
+ - πŸ” **Improved Tooltips:** Better lifecycle management and styling for tooltip content
1675
+ - ⚑ **Auto-emit Metrics:** Metric inputs now automatically emit changes for smoother UX
1676
+
1677
+ ---
1678
+
1679
+ ## [0.0.120] - 2026-02-03
1680
+
1681
+ ### πŸš€ Features
1682
+
1683
+ **Metric Editor Components**
1684
+
1685
+ - **MetricEditorWrapper:** Enhanced cancel handling
1686
+ - Added `closeEdit()` helper function to stop editing
1687
+ - Implemented `handleCancel()` method that calls `closeEdit()`
1688
+ - Now calls `closeEdit()` at the start of `handleUpdate()` for consistent behavior
1689
+ - Removed duplicate `stopEditing()` call when value hasn't changed
1690
+ - Better separation of concerns between closing and updating
1691
+
1692
+ - **MetricEditorDropdown:** Improved cancel event handling
1693
+ - Added `handleCancel` emit to event definitions
1694
+ - Implemented dedicated `handleCancel()` method with logging
1695
+ - Changed cancel event handler from `@cancel="handleClose"` to `@cancel="handleCancel"`
1696
+ - Better distinction between close and cancel actions
1697
+
1698
+ **Rating Component**
1699
+
1700
+ - **RatingComponent:** Enhanced clickable area
1701
+ - Increased minimum width from `18px` to `24px`
1702
+ - Increased minimum height from `18px` to `24px`
1703
+ - Improved accessibility and easier interaction with stars
1704
+ - Better touch targets for mobile devices
1705
+
1706
+ ### πŸ”§ Technical Improvements
1707
+
1708
+ **Code Quality**
1709
+
1710
+ - Better event handling in metric editor components
1711
+ - Improved logging for debugging cancel and close actions
1712
+ - More explicit function naming for clarity
1713
+
1714
+ **User Experience**
1715
+
1716
+ - Larger hit areas for rating stars improve usability
1717
+ - More predictable cancel behavior in metric editors
1718
+ - Better handling of editor state transitions
1719
+
1720
+ ### πŸ“¦ Package Updates
1721
+
1722
+ - **@arbocollab/ag-grid-ui-components:** Updated from `0.0.22` to `0.0.23`
1723
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.119` to `0.0.120`
1724
+
1725
+ ---
1726
+
1727
+ ## [0.0.119] - 2026-02-03
1728
+
1729
+ ### πŸš€ Features
1730
+
1731
+ **Avatar Component Enhancements**
1732
+
1733
+ - **Dynamic Font Sizing:** Avatar component now calculates font size dynamically based on avatar size
1734
+ - Font size is set to half the avatar size: `Math.floor(props.size / 2)`
1735
+ - Ensures better text scaling across different avatar sizes
1736
+ - Improves visual consistency and readability
1737
+
1738
+ **Assignee Components Refactor**
1739
+
1740
+ - **Replaced Avatar with AvatarProfile:** Streamlined assignee rendering across components
1741
+ - **AssigneeGroupEditor:**
1742
+ - Removed `getAvatarProps()` helper function
1743
+ - Replaced `Avatar` + `v-user-profile` directive with `AvatarProfile` component
1744
+ - Simplified template with cleaner props: `:user` and `:show-profile="true"`
1745
+ - Removed unused imports: `AvatarProps`, `OptionItemType`, `userProfileDirective`
1746
+ - **AssigneeGroupRenderer:**
1747
+ - Replaced `Avatar` + `v-user-profile` directive with `AvatarProfile` component
1748
+ - Removed complex profile configuration from template
1749
+ - Simplified avatar rendering with just `:user` and `:show-profile="true"` props
1750
+ - Removed `readOnly`, `name`, `initial`, `id`, `profile_image`, `color`, and `size` props (now handled internally)
1751
+ - Removed `apiUpdateFunction` prop (no longer needed with AvatarProfile)
1752
+
1753
+ ### πŸ”§ Technical Improvements
1754
+
1755
+ **Code Quality**
1756
+
1757
+ - Reduced code duplication in assignee components
1758
+ - Better separation of concerns with dedicated `AvatarProfile` component
1759
+ - Cleaner component templates with fewer props
1760
+ - Removed redundant helper functions
1761
+
1762
+ **Component Architecture**
1763
+
1764
+ - Centralized user profile display logic in `AvatarProfile` component
1765
+ - Consistent user profile behavior across all assignee components
1766
+ - Improved maintainability by reducing prop drilling
1767
+
1768
+ **CSS Variables**
1769
+
1770
+ - Added `--font-size` CSS variable in Avatar component for dynamic styling
1771
+ - Better control over text sizing in avatar displays
1772
+
1773
+ ### πŸ“¦ Dependencies
1774
+
1775
+ - No dependency changes in this release
1776
+
1777
+ ---
1778
+
1779
+ [0.0.119]: https://github.com/arbocollab/arbo-plugins/releases/tag/v0.0.119
1780
+
1781
+ ## [0.0.118] - 2026-02-03
1782
+
1783
+ ### πŸš€ Features
1784
+
1785
+ **AG Grid Cell Updates**
1786
+
1787
+ - **New useRowUpdateComposable:** Introduced centralized composable for AG Grid row updates
1788
+ - Handles cell data updates with proper row node management
1789
+ - Implements forced cell refresh for immediate UI updates
1790
+ - Better logging for debugging cell update operations
1791
+ - Improved separation of concerns for grid data management
1792
+
1793
+ **Metric Editor Enhancements**
1794
+
1795
+ - **MetricEditorWrapper Improvements:**
1796
+ - Integrated with `useRowUpdateComposable` for standardized cell updates
1797
+ - Added optimistic UI updates (shows `undefined` during API call)
1798
+ - Improved error handling with value reversion on failure
1799
+ - Better state management for loading states
1800
+ - Removed duplicate grid API update logic
1801
+ - Added `stopEditing()` call at the start of `handleUpdate`
1802
+
1803
+ - **MetricEditorInput Updates:**
1804
+ - Added `autoEmit` prop (defaults to `true`) for flexible update behavior
1805
+ - Improved blur event handling - only emits when `autoEmit` is enabled
1806
+ - Better cancel behavior - now calls `focusout()` instead of emitting `handleChange`
1807
+ - Enhanced TypeScript emit definitions for type safety
1808
+ - Improved console logging for debugging
1809
+
1810
+ **Core Table Improvements**
1811
+
1812
+ - **Vue3CellWrapper Refactor:**
1813
+ - Changed `refresh()` method to return `true` instead of `false`
1814
+ - Allows AG Grid to properly handle cell updates
1815
+ - Added JSDoc documentation for the refresh method
1816
+ - Improved cell renderer lifecycle management
1817
+
1818
+ - **Vue3Wrapper Enhancements:**
1819
+ - Added deep watcher for value changes with detailed logging
1820
+ - Better debugging capabilities for component prop changes
1821
+ - Improved reactivity tracking
1822
+
1823
+ **Input Components**
1824
+
1825
+ - **InputText Component:**
1826
+ - Added `focusout()` method for programmatic blur control
1827
+ - Better integration with editor wrappers
1828
+ - Improved focus management
1829
+
1830
+ **API & Services**
1831
+
1832
+ - **ItemService Updates:**
1833
+ - Fixed search parameter: `name_or_code_like` β†’ `search`
1834
+ - Added `undefined` check to prevent empty query parameters
1835
+ - Improved consistency with backend API expectations
1836
+
1837
+ **Metric Renderer**
1838
+
1839
+ - **MetricRenderer Improvements:**
1840
+ - Enhanced `initValue()` function with old value parameter for debugging
1841
+ - Added deep watching on `props.value` for better reactivity
1842
+ - Improved logging to track value initialization
1843
+
1844
+ **Data Management**
1845
+
1846
+ - **useRowUpdater Cleanup:**
1847
+ - Removed excessive console logging in row update operations
1848
+ - Cleaner code output for production
1849
+ - Maintained all functionality while reducing noise
1850
+
1851
+ ### πŸ› Bug Fixes
1852
+
1853
+ **Cell Refresh Issues**
1854
+
1855
+ - Fixed AG Grid cells not updating after metric value changes
1856
+ - Fixed refresh mechanism by properly returning `true` from `refresh()` method
1857
+ - Fixed race conditions in cell data updates
1858
+
1859
+ **Search Functionality**
1860
+
1861
+ - Fixed search parameter naming in API calls
1862
+ - Fixed query parameter serialization to avoid empty values
1863
+
1864
+ **Editor Behavior**
1865
+
1866
+ - Fixed blur events firing when they shouldn't in `MetricEditorInput`
1867
+ - Fixed cancel button not properly blurring input
1868
+ - Fixed `autoEmit` prop not being respected
1869
+
1870
+ ### πŸ”§ Technical Improvements
1871
+
1872
+ **Code Quality**
1873
+
1874
+ - Removed unused imports in `CellFactory` (removed `MetricType` and `MetricEditor`)
1875
+ - Cleaned up console.log statements in `useRowUpdater`
1876
+ - Better TypeScript type safety in composables
1877
+ - Improved code organization
1878
+
1879
+ **Performance**
1880
+
1881
+ - Reduced unnecessary cell refreshes
1882
+ - Better change detection with deep watchers
1883
+ - Optimized grid update operations
1884
+
1885
+ **Development Experience**
1886
+
1887
+ - Enhanced logging for debugging cell updates
1888
+ - Better error messages and warnings
1889
+ - Improved composable reusability
1890
+ - Added JSDoc documentation
1891
+
1892
+ ---
1893
+
1894
+ ### ⚠️ Breaking Changes
1895
+
1896
+ **Vue3CellWrapper Refresh Behavior:**
1897
+
1898
+ - `refresh()` method now returns `true` instead of `false`
1899
+ - This allows AG Grid to properly manage cell updates
1900
+ - Custom cell renderers may need to handle refresh differently
1901
+
1902
+ **API Search Parameter:**
1903
+
1904
+ - `name_or_code_like` changed to `search` in ItemService
1905
+ - Ensure backend API supports the `search` parameter
1906
+
1907
+ ---
1908
+
1909
+ ### πŸ“¦ Dependencies
1910
+
1911
+ This release works with:
1912
+
1913
+ - `@arbocollab/ag-grid-ui-components@latest`
1914
+ - AG Grid Community Edition v34.3.1
1915
+ - Vue 3.5.13
1916
+
1917
+ ---
1918
+
1919
+ ## [0.0.117] - 2026-02-03
1920
+
1921
+ ### πŸ› Bug Fixes
1922
+
1923
+ **API Services**
1924
+
1925
+ - **ItemService:** Fixed search parameter naming
1926
+ - Changed `name_or_code_like` to `search` for better API consistency
1927
+ - Added undefined checks for cleaner query parameters
1928
+
1929
+ **Core Table**
1930
+
1931
+ - **CellFactory:** Removed unused imports for cleaner code
1932
+
1933
+ ---
1934
+
1935
+ ## [0.0.116] - 2026-02-03
1936
+
1937
+ ### 🎨 UI/UX Improvements
1938
+
1939
+ **Metric Editor**
1940
+
1941
+ - **MetricEditor:** Improved default display label
1942
+ - Changed empty state from "Select one" to "-" for cleaner appearance
1943
+ - Better visual consistency across empty metric cells
1944
+
1945
+ ---
1946
+
1947
+ ## [0.0.115] - 2026-02-03
1948
+
1949
+ ### πŸ› Bug Fixes
1950
+
1951
+ **Metric Editor**
1952
+
1953
+ - **MetricEditor:** Fixed focus timing issues
1954
+ - Added 300ms delay to `handleFocus()` in `onMounted` lifecycle
1955
+ - Prevents premature focus before component is fully rendered
1956
+
1957
+ **MetricEditorInput**
1958
+
1959
+ - Removed `.stop.prevent` modifiers from blur event
1960
+ - Allows proper event propagation
1961
+ - Fixes editor closing behavior
1962
+
1963
+ ---
1964
+
1965
+ ## [0.0.114] - 2026-02-02
1966
+
1967
+ ### πŸš€ Features
1968
+
1969
+ **Rating Component**
1970
+
1971
+ - **RatingComponent:** Enhanced keyboard navigation
1972
+ - Added arrow key support (left/right, up/down) for rating changes
1973
+ - Added `tabindex="0"` to container for keyboard accessibility
1974
+ - Individual stars now have `tabindex="-1"` to prevent multiple tab stops
1975
+ - Added `ratingRef` template ref for programmatic focus control
1976
+ - Implemented `decreaseRating()` and `increaseRating()` methods
1977
+
1978
+ **Package Management**
1979
+
1980
+ - Updated cleanup script spacing in package.json
1981
+
1982
+ ---
1983
+
1984
+ ## [0.0.113] - 2026-02-02
1985
+
1986
+ ### 🎨 UI/UX Improvements
1987
+
1988
+ **Metric Editor**
1989
+
1990
+ - **MetricEditor:** Added empty line for better code formatting
1991
+
1992
+ **MetricUpdateButton**
1993
+
1994
+ - Simplified `resetFocus()` logic
1995
+ - Removed unnecessary `openIndex` null check
1996
+ - Cleaner focus reset behavior
1997
+
1998
+ ---
1999
+
2000
+ ## [0.0.112] - 2026-02-02
2001
+
2002
+ ### πŸ› Bug Fixes
2003
+
2004
+ **Display Components**
2005
+
2006
+ - **DisplayWrapper:** Commented out error border color
2007
+ - Temporarily disabled red error border (`#ef4444`)
2008
+ - Improves visual consistency while error handling is refined
2009
+
2010
+ ---
2011
+
2012
+ ## [0.0.111] - 2026-01-30
2013
+
2014
+ ### πŸš€ Features
2015
+
2016
+ **Storybook Configuration**
2017
+
2018
+ - **Enhanced Development Environment:** Added SessionStorageHelper configuration in Storybook preview
2019
+ - Pre-configured workspace code (`w:yngazem`)
2020
+ - Set up API endpoints for dev environment:
2021
+ - API_BASE_URL: `https://api.dev.arbocollab.com/api`
2022
+ - BASE_URL: `https://app.dev.arbocollab.com`
2023
+ - BASE_REVIEW_URL: `https://review.dev.arbocollab.com`
2024
+ - ASSET_URL configured
2025
+ - Improved development experience with pre-populated session data
2026
+
2027
+ **Metric Components**
2028
+
2029
+ - **MetricEditor Enhancements:**
2030
+ - Added tooltip support for update button ("Update")
2031
+ - Extended props to include `CellParamsCore` for better integration
2032
+ - Added `disabled` and `readOnly` prop support
2033
+ - Implemented `isMetricReadonly` computed property for permission-based access control
2034
+ - Auto-detects formula metrics and makes them read-only
2035
+ - Checks `auth_permission.permission` level (requires level 2 for editing)
2036
+ - Improved wrapper state management with proper disabled/readOnly handling
2037
+
2038
+ - **MetricRenderer Improvements:**
2039
+ - Added conditional rendering for suffix section based on `disabled` prop
2040
+ - Better separation of display-only vs. editable states
2041
+ - Changed action button visibility: now shows on hover instead of `showActions`
2042
+ - Simplified hover state management
2043
+ - Removed `ICON_SIZE` from composable return
2044
+
2045
+ **Display Components**
2046
+
2047
+ - **DisplayWrapper:** Added `tabIndex` prop support for better keyboard navigation
2048
+
2049
+ **Button Components**
2050
+
2051
+ - **Button:** Added focus management
2052
+ - Exposed `buttonRef` template ref
2053
+ - Added `focus()` method for programmatic focus control
2054
+ - Better integration with parent components
2055
+
2056
+ ### πŸ“¦ Version Updates
2057
+
2058
+ - **@arbocollab/ag-grid-ui-components:** Updated from `0.0.14` to `0.0.21`
2059
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.110` to `0.0.111`
2060
+
2061
+ ### πŸ”§ Technical Improvements
2062
+
2063
+ **Type Safety**
2064
+
2065
+ - Better prop typing with `CellParamsCore` integration in MetricEditor
2066
+ - Improved permission checking with proper type guards
2067
+ - Enhanced computed property definitions
2068
+
2069
+ **Code Quality**
2070
+
2071
+ - Cleaner component structure
2072
+ - Better composable organization
2073
+ - Improved state management patterns
2074
+
2075
+ ---
2076
+
2077
+ ## [0.0.110] - 2026-01-30
2078
+
2079
+ ### πŸš€ Features
2080
+
2081
+ **Input Components**
2082
+
2083
+ - **Enhanced InputText Component:** Complete rewrite with advanced input handling
2084
+ - Added support for multiple input types: `text`, `number`, `email`, `url`, `tel`
2085
+ - Implemented auto-emit mode with configurable debounce delay (default 300ms)
2086
+ - Added intelligent formatters and validators for each input type
2087
+ - Number inputs now limited to 17 digits (excluding decimal point and minus sign)
2088
+ - Text inputs capped at 255 characters (configurable via maxLength)
2089
+ - Email and URL inputs automatically remove spaces
2090
+ - Telephone inputs only allow valid phone characters
2091
+ - Improved keyboard navigation (Enter to submit, Escape to cancel/blur)
2092
+ - Fixed cursor jumping issues during character deletion
2093
+ - Clear button now prevents blur event and maintains focus
2094
+
2095
+ **Metric Components**
2096
+
2097
+ - Enhanced metric editing capabilities
2098
+ - Better integration with AG Grid cell editors
2099
+
2100
+ ---
2101
+
2102
+ ## [0.0.111] - 2026-01-30
2103
+
2104
+ ### πŸš€ Features
2105
+
2106
+ **Storybook Configuration**
2107
+
2108
+ - **Enhanced Development Environment:** Added SessionStorageHelper configuration in Storybook preview
2109
+ - Pre-configured workspace code (`w:yngazem`)
2110
+ - Set up API endpoints for dev environment
2111
+ - Added base URLs for main app, review, and assets
2112
+ - Improved development experience with pre-populated session data
2113
+
2114
+ **Metric Components**
2115
+
2116
+ - **MetricEditor Enhancements:**
2117
+ - Added tooltip support for update button ("Update")
2118
+ - Extended props to include `CellParamsCore` for better integration
2119
+ - Added `disabled` and `readOnly` prop support
2120
+ - Implemented `isMetricReadonly` computed property for permission-based access control
2121
+ - Auto-detects formula metrics and makes them read-only
2122
+ - Checks `auth_permission.permission` level (requires level 2 for editing)
2123
+ - Improved wrapper state management with proper disabled/readOnly handling
2124
+
2125
+ - **MetricRenderer Improvements:**
2126
+ - Added conditional rendering for suffix section based on `disabled` prop
2127
+ - Prevents interaction buttons from showing when metric is disabled
2128
+ - Better separation of display-only vs. editable states
2129
+
2130
+ ### πŸ“¦ Version Updates
2131
+
2132
+ - **@arbocollab/ag-grid-ui-components:** Updated from `0.0.14` to `0.0.15`
2133
+ - **@arbocollab/arbo-plugin-item-table:** Updated from `0.0.110` to `0.0.111`
2134
+
2135
+ ### πŸ”§ Technical Improvements
2136
+
2137
+ **Type Safety**
2138
+
2139
+ - Better prop typing with `CellParamsCore` integration in MetricEditor
2140
+ - Improved permission checking with proper type guards
2141
+ - Enhanced computed property definitions
2142
+
2143
+ **Development Experience**
2144
+
2145
+ - Storybook now auto-configures session storage for testing
2146
+ - Reduced manual setup needed for component development
2147
+ - Consistent environment configuration across stories
2148
+
2149
+ **Security & Permissions**
2150
+
2151
+ - Proper permission level checks before allowing edits
2152
+ - Formula metrics automatically marked as read-only
2153
+ - Respects both component-level and permission-level restrictions
2154
+
2155
+ ### 🎨 UI/UX Improvements
2156
+
2157
+ - **Better User Feedback:**
2158
+ - Tooltip on update button provides clear action indication
2159
+ - Disabled/read-only states properly communicated visually
2160
+ - Hidden interaction buttons when editing is not allowed
2161
+
2162
+ - **Permission-Based Interactions:**
2163
+ - Users with insufficient permissions see read-only view
2164
+ - Formula-based metrics cannot be manually edited
2165
+ - Cleaner interface when editing is disabled
2166
+
2167
+ ---
2168
+
2169
+ ### Dependencies
2170
+
2171
+ This release works with:
2172
+
2173
+ - `@arbocollab/ag-grid-ui-components@0.0.15`
2174
+ - Storybook development environment with pre-configured session storage
2175
+ - Dev environment URLs:
2176
+ - API: `https://api.dev.arbocollab.com/api`
2177
+ - App: `https://app.dev.arbocollab.com`
2178
+ - Review: `https://review.dev.arbocollab.com`
2179
+ - Assets: `https://arbodev.s3.ap-south-1.amazonaws.com`
2180
+
2181
+ ---
2182
+
2183
+ ## [0.0.110] - 2026-01-30
2184
+
2185
+ ### πŸš€ Features
2186
+
2187
+ **Input Components**
2188
+
2189
+ - **Enhanced InputText Component:** Complete rewrite with advanced input handling
2190
+ - Added support for multiple input types: `text`, `number`, `email`, `url`, `tel`
2191
+ - Implemented auto-emit mode with configurable debounce delay (default 300ms)
2192
+ - Added intelligent formatters and validators for each input type
2193
+ - Number inputs now limited to 17 digits (excluding decimal point and minus sign)
2194
+ - Text inputs capped at 255 characters (configurable via maxLength)
2195
+ - Email and URL inputs automatically remove spaces
2196
+ - Telephone inputs only allow valid phone characters
2197
+ - Improved keyboard navigation (Enter to submit, Escape to cancel/blur)
2198
+ - Fixed cursor jumping issues during character deletion
2199
+ - Clear button now prevents blur event and maintains focus
2200
+
2201
+ **Metric Components**
2202
+
2203
+ - **New MetricEditorInput:** Dedicated component for metric number inputs
2204
+ - Supports dynamic decimal place formatting based on metric config
2205
+ - Implements proper value caching and revert on Escape
2206
+ - Enhanced blur/enter/clear event handling
2207
+ - Auto-focuses on mount for better UX
2208
+
2209
+ - **Enhanced MetricEditorDropdown:**
2210
+ - Added empty option ("-") for clearing values
2211
+ - Improved tooltip support for long metric names
2212
+ - Better overflow handling with max-width constraints
2213
+
2214
+ - **MetricEditor Refactor:**
2215
+ - Replaced generic InputText with specialized MetricEditorInput
2216
+ - Simplified metric type handling
2217
+ - Improved confirm/cancel logic
2218
+
2219
+ - **MetricEditorWrapper Improvements:**
2220
+ - Added smart value comparison to prevent unnecessary API calls
2221
+ - Proper handling of null/clear operations with `clear` flag
2222
+ - Enhanced row data updates with forced cell refresh
2223
+ - Better logging for debugging
2224
+
2225
+ **Metric Rendering**
2226
+
2227
+ - **Large Number Support:** Fixed JavaScript precision issues
2228
+ - Numbers with >16 digits now kept as strings to preserve precision
2229
+ - Custom formatting for large numbers without precision loss
2230
+ - Prevents `22222222222222222` from becoming `22222222222222224`
2231
+
2232
+ - **Enhanced MetricRenderer:**
2233
+ - Improved tooltip behavior with `bypassOverflowCheck` for morpheme values
2234
+ - Better formatted value display with proper morpheme handling
2235
+ - Fixed string-to-number conversion for large values
2236
+
2237
+ **Bulk Operations**
2238
+
2239
+ - **New useMetricUpdate Composable:** Centralized metric update logic
2240
+ - Handles both single and bulk metric updates
2241
+ - Supports clear operations with proper API payload construction
2242
+ - Integrated callback system for post-update actions
2243
+ - Better error handling and logging
2244
+
2245
+ - **Enhanced BulkUpdate Component:**
2246
+ - Refactored action handling with switch statement for clarity
2247
+ - Improved loading states and error handling
2248
+ - Better integration with MetricUpdateButton
2249
+
2250
+ - **MetricUpdateButton Improvements:**
2251
+ - Integrated with new useMetricUpdate composable
2252
+ - Fixed prop naming: `ids` β†’ `selectedIds`
2253
+ - Removed duplicate logic, delegated to composable
2254
+ - Cleaner emit handling
2255
+
2256
+ **Search & Filter**
2257
+
2258
+ - **SearchBox Enhancements:**
2259
+ - Now uses `auto-emit` mode for real-time search
2260
+ - Integrated with standardized debounce delay constant
2261
+ - Removed manual debounce logic in favor of InputText's built-in handling
2262
+ - Better cancel/escape key behavior
2263
+
2264
+ - **SearchList Improvements:**
2265
+ - Dynamic min-height based on content state
2266
+ - Improved empty/no-results states styling
2267
+ - Better scrollable detection (>8 items)
2268
+ - Enhanced loading skeleton (8 items instead of 7)
2269
+ - Cleaner state management with reduced code complexity
2270
+
2271
+ **API & Services**
2272
+
2273
+ - **ItemService Updates:**
2274
+ - Fixed typo: `builkMetricUpdate` β†’ `bulkMetricUpdate`
2275
+ - Added `clear` parameter support for metric updates
2276
+ - Automatic clear flag when value is null
2277
+ - Better payload construction
2278
+
2279
+ - **API Configuration:**
2280
+ - Updated endpoint naming for consistency
2281
+ - Fixed method signatures across the codebase
2282
+
2283
+ **Data Management**
2284
+
2285
+ - **useRowUpdater Enhancements:**
2286
+ - Only updates fields when data exists (no overwrites of missing data)
2287
+ - Dynamic column refresh (only refreshes changed columns)
2288
+ - Better handling of assignees, permissions, and metric values
2289
+ - Removed hardcoded column refreshes
2290
+ - Improved logging for debugging
2291
+
2292
+ - **useItems Improvements:**
2293
+ - Separated metric value fetching from other data fetching
2294
+ - Better async handling of post-fetch operations
2295
+ - Reduced race conditions in data updates
2296
+
2297
+ **UI/UX Improvements**
2298
+
2299
+ - **Button Component:**
2300
+ - Optimized variant detection with Set instead of array
2301
+ - Cleaner loading state handling
2302
+ - Removed commented-out code
2303
+
2304
+ - **FileUploader:**
2305
+ - Fixed error state logic (proper validation)
2306
+ - Cleaner emit types with function syntax
2307
+
2308
+ - **ImportVisual:**
2309
+ - Removed min-height constraint for better responsiveness
2310
+ - Cleaner prop definitions
2311
+
2312
+ - **Calendar Components:**
2313
+ - Added proper Mode type definition
2314
+ - Improved type safety
2315
+ - Removed unused hover styles
2316
+
2317
+ ### ⚑ Performance & Code Quality
2318
+
2319
+ **Constants & Configuration**
2320
+
2321
+ - Increased `STANDARD_DEBOUNCE_DELAY` from 300ms to 800ms for better UX
2322
+ - Centralized debounce delay across all components
2323
+ - Removed duplicate debounce implementations
2324
+
2325
+ **Code Cleanup**
2326
+
2327
+ - Removed obsolete BulkUpdate Storybook story
2328
+ - Cleaned up unused imports across multiple files
2329
+ - Fixed ESLint configuration for consistent semicolon usage
2330
+ - Removed commented-out code blocks
2331
+ - Improved code formatting and consistency
2332
+ - Better TypeScript type definitions
2333
+
2334
+ **Refactoring**
2335
+
2336
+ - Simplified conditional logic throughout codebase
2337
+ - Replaced if-else chains with switch statements
2338
+ - Used optional chaining and nullish coalescing
2339
+ - Better function composition and reusability
2340
+ - Improved variable naming for clarity
2341
+
2342
+ ### πŸ› Bug Fixes
2343
+
2344
+ **Input Handling**
2345
+
2346
+ - Fixed cursor position jumping during input deletion
2347
+ - Fixed blur event firing when clearing input
2348
+ - Fixed Escape key behavior in auto-emit mode (now blurs instead of reverting)
2349
+ - Fixed number input precision for large numbers (>16 digits)
2350
+
2351
+ **Metric Updates**
2352
+
2353
+ - Fixed `bulkMetricUpdate` API method name typo
2354
+ - Fixed metric clear operations not working properly
2355
+ - Fixed unnecessary API calls when value unchanged
2356
+ - Fixed row data not updating after metric change
2357
+
2358
+ **Data Updates**
2359
+
2360
+ - Fixed assignees being overwritten when not in response
2361
+ - Fixed permissions being cleared when not provided
2362
+ - Fixed metric values being reset inappropriately
2363
+
2364
+ **UI/UX**
2365
+
2366
+ - Fixed SearchList height issues with empty states
2367
+ - Fixed loading skeleton count inconsistency
2368
+ - Fixed tooltip overflow checks for metric morphemes
2369
+ - Fixed error state in file uploader validation
2370
+
2371
+ ### πŸ”§ Technical Improvements
2372
+
2373
+ **Type Safety**
2374
+
2375
+ - Better TypeScript definitions for emit signatures
2376
+ - Proper Mode type for calendar navigation
2377
+ - Improved API response types
2378
+ - Cleaner generic type usage
2379
+
2380
+ **Performance**
2381
+
2382
+ - Reduced unnecessary re-renders with smarter computed properties
2383
+ - Optimized cache handling in remote file composables
2384
+ - Better debounce strategies across components
2385
+ - Removed v-memo where not needed
2386
+
2387
+ **Testing & Development**
2388
+
2389
+ - Better console logging for debugging
2390
+ - Improved error messages
2391
+ - Enhanced development experience with better type hints
2392
+
2393
+ ---
2394
+
2395
+ ### Breaking Changes
2396
+
2397
+ ⚠️ **API Method Rename:**
2398
+
2399
+ - `builkMetricUpdate` β†’ `bulkMetricUpdate` (typo fix)
2400
+
2401
+ ⚠️ **Prop Changes:**
2402
+
2403
+ - `MetricUpdateButton`: `ids` prop renamed to `selectedIds`
2404
+
2405
+ ⚠️ **Behavior Changes:**
2406
+
2407
+ - Escape key in auto-emit mode now blurs input instead of reverting value
2408
+ - Debounce delay increased from 300ms to 800ms globally
2409
+
2410
+ ---
2411
+
2412
+ ## [0.0.103] - 2026-01-30 1:36 PM
2413
+
2414
+ ### πŸš€ Features
2415
+
2416
+ - Enhance metric editing capabilities and improve UI components
2417
+ - Added metric type checks in Vue3CellWrapper to handle popup behavior based on metric types.
2418
+ - Updated item-table.vue to allow Enter key confirmation during editing.
2419
+ - Modified SearchBoxProps to accept null as a valid modelValue.
2420
+ - Introduced MetricType for better type handling in metric configurations.
2421
+ - Enhanced metric editing components to support dropdown and input types.
2422
+ - Refactored MetricEditor to use new MetricEditorDropdown and MetricEditorInput components.
2423
+ - Improved validation logic for metric values in helper functions.
2424
+ - Updated styles for better UI consistency and user experience.
2425
+ - Added new components for handling metric dropdowns and inputs.
2426
+ - Implemented better state management for metric updates in item-table components.
2427
+
2428
+ ## [0.0.102] - 2026-01-29
2429
+
2430
+ ### **πŸš€ New Features**
2431
+
2432
+ **Filtering & Search**
2433
+
2434
+ - **Advanced Filter Components:** Added FilterAssignee, FilterArchiveStatus, FilterDateRange, and FilterStatus with improved deep watchers, data exposure methods (getData, clear), and multi-select support.
2435
+ - **Complex Logic Support:** Introduced new condition-combine types and behaviors for more complex filtering scenarios.
2436
+ - **Dropdown Enhancements:** Filter components now expose methods and emit updates for tighter integration with parent components. SearchList now supports extra items with query context.
2437
+
2438
+ **UI Components**
2439
+
2440
+ - **RatingRenderer:** Added a new component to display ratings directly within the item table.
2441
+ - **Multi-Date Support:** Updated Calendar.vue, DateInput.vue, MainCalendar.vue, and the useDatePicker composable to handle multiple start/due dates.
2442
+ - **Column Management:** Enhanced the column manager to persist configuration and emit change events on updates.
2443
+
2444
+ **Core & API**
2445
+
2446
+ - **Caching System:** Implemented useIconMemoryCache and enhanced useImageCache / useRemoteFiles to significantly reduce duplicate network requests for avatars and icons.
2447
+ - **ItemService API:** Added getMe, getWorkspaces, and getEntityUserRoles methods, along with improved API configuration.
2448
+
2449
+ ### **⚑ Improvements & Performance**
2450
+
2451
+ **Performance Optimization**
2452
+
2453
+ - **Grid Rendering:** Debounced grid template calculations in DisplayWrapper to improve scroll performance.
2454
+ - **Data Fetching:** Optimized useItems fetching logic and improved idempotency in Vue3CellWrapper.
2455
+ - **Asset Management:** Reduced console noise and cleaned up unused imports across the codebase.
2456
+
2457
+ **UX & Polish**
2458
+
2459
+ - **Loading States:** Refined skeleton screens and loading styles; migrated the loading directive to a class-based implementation for smoother transitions.
2460
+ - **Filter UI:** Improved FilterBox styling and active states. The isSearchActive property now accounts for selectedAssignees.
2461
+ - **Interaction Design:** Enhanced focus handling, cursor styles, and button hover states across filter components.
2462
+ - **Visual Consistency:** Adjusted layouts in MainCalendar and CalendarNavigationControl for better responsiveness.
2463
+
2464
+ ### **πŸ› Bug Fixes**
2465
+
2466
+ - **MiniPeopleCard:** Fixed Ctrl+Click behavior.
2467
+ - **Renderers:** Resolved loading state edge-cases in useMetricRenderer and related components.
2468
+ - **AssigneeGroup:** Added explicit empty array checks to prevent rendering errors.
2469
+ - **Metric Generation:** Improved the generation logic for people/insight links.
2470
+
2471
+ ### **πŸ”§ Refactoring & Chores**
2472
+
2473
+ - **Code Cleanup:** Removed obsolete tests (Button, DisplayWrapper, MetricRender) and deleted unused files.
2474
+ - **State Management:** Refactored useMetricRenderer for better icon handling and state clarity.
2475
+ - **Reusability:** Centralized the "clear filter" functionality for better code reuse.
2476
+ - **Versioning:** Routine package version bumps and dependency updates.
2477
+ - **Configuration:** Added getAPIDomain helper and updated base-config endpoints.
2478
+
2479
+ ## [0.0.101] - 2026-01-28
2480
+
2481
+ ### πŸš€ Features
2482
+
2483
+ - enhance README.md with additional badges and features
2484
+ - add CHANGELOG.md to publish folder
2485
+
2486
+ ## [0.0.100] - 2026-01-28
2487
+
2488
+ ### πŸš€ Features
2489
+
2490
+ - Updated TypeScript definitions in env.d.ts for consistent formatting.
2491
+ - Adjusted ESLint configuration to maintain consistent semicolon usage.
2492
+ - Reformatted index.html for improved readability and structure.
2493
+ - Added a new format script to package.json for code formatting with Prettier.
2494
+ - Enhanced service worker (sw.js) fetch logic for better readability.
2495
+ - Reformatted tsconfig.app.json for consistent indentation.
2496
+ - Updated changelog.json to include new version 0.0.99 with relevant changes.
2497
+ - Integrated tooltip directive in item-table.vue for better user experience.
2498
+ - Improved Icon.vue component by optimizing caching logic and style handling.
2499
+ - Refactored Visual.vue to enhance caching and image retrieval logic.
2500
+ - Enhanced EmptyData.vue to provide clearer messaging for search and filter states.
2501
+ - Refactored useRemoteFiles.ts to streamline caching and fetching logic for remote files.
2502
+
2503
+ ---
2504
+
2505
+ ## [0.0.98] - Beta
2506
+
2507
+ ### πŸš€ Features
2508
+
2509
+ - Update version to 0.0.96
2510
+
2511
+ ---
2512
+
2513
+ ## [0.0.96] - Beta
2514
+
2515
+ ### πŸš€ Features
2516
+
2517
+ - Add MetricEditorWrapper component
2518
+ - Enhance column configurations with suppressMovable property
2519
+
2520
+ ---
2521
+
2522
+ ## [0.0.95] - Beta
2523
+
2524
+ ### πŸš€ Features
2525
+
2526
+ - Enhance MetricRenderer with number formatting
2527
+ - Adjust MoreOptionItem styling
2528
+ - Remove unused description in useSceneAction
2529
+
2530
+ ---
2531
+
2532
+ ## [0.0.91] - Beta
2533
+
2534
+ ### πŸš€ Features
2535
+
2536
+ - Adjust FilterAssignee component styles
2537
+ - Enhance wrapper styling
2538
+
2539
+ ---
2540
+
2541
+ ## [0.0.89] - Beta
2542
+
2543
+ ### πŸš€ Features
2544
+
2545
+ - Enhance AgTable column definition handling
2546
+ - Improve column manager logging
2547
+ - Refine UI components with style adjustments
2548
+
2549
+ ---
2550
+
2551
+ ## [0.0.88] - Beta
2552
+
2553
+ ### πŸš€ Features
2554
+
2555
+ - Enhance CellRendererFactory with dynamic cellClass
2556
+ - Improve AgTable column sync functionality
2557
+ - Refine scene action permissions
2558
+
2559
+ ---
2560
+
2561
+ ## [0.0.87] - Beta
2562
+
2563
+ ### πŸš€ Features
2564
+
2565
+ - Enhance CellFactory with editable property
2566
+ - Adjust MetricRenderer logic
2567
+ - Improve FilterRow styling
2568
+
2569
+ ---
2570
+
2571
+ ## [0.0.86] - Beta
2572
+
2573
+ ### πŸš€ Features
2574
+
2575
+ - Enhance calendar components with navigation functionality
2576
+ - Dropdown improvements
2577
+
2578
+ ---
2579
+
2580
+ ## [0.0.85] - Beta
2581
+
2582
+ ### πŸš€ Features
2583
+
2584
+ - Enhance Metric components with new MetricEditor
2585
+ - Improved dropdown handling
2586
+ - UI styling adjustments
2587
+
2588
+ ---
2589
+
2590
+ ## [0.0.83] - Beta
2591
+
2592
+ ### πŸš€ Features
2593
+
2594
+ - Enhance dropdown components with bordered styling
2595
+ - Adjust layout properties for improved UI consistency
2596
+
2597
+ ---
2598
+
2599
+ ## [0.0.82] - Beta
2600
+
2601
+ ### πŸš€ Features
2602
+
2603
+ - Refactor checkbox column properties
2604
+ - Enhance Metric components with improved dropdown handling and styles
2605
+
2606
+ ---
2607
+
2608
+ ## [0.0.80] - Beta
2609
+
2610
+ ### πŸš€ Features
2611
+
2612
+ - Enhance UI components with improved styles and consistency
2613
+
2614
+ ---
2615
+
2616
+ ## [0.0.79] - Beta
2617
+
2618
+ ### πŸš€ Features
2619
+
2620
+ - Enhance saveColumnConfig logic for better source handling
2621
+
2622
+ ---
2623
+
2624
+ ## [0.0.77] - Beta
2625
+
2626
+ ### πŸš€ Features
2627
+
2628
+ - Integrate metric store
2629
+ - Enhance various components with improved functionality
2630
+
2631
+ ---
2632
+
2633
+ ## [0.0.73] - Beta
2634
+
2635
+ ### πŸš€ Features
2636
+
2637
+ - Adjust component styles
2638
+ - Improve layout for better UI consistency
2639
+
2640
+ ---
2641
+
2642
+ ## [0.0.72] - Beta
2643
+
2644
+ ### πŸš€ Features
2645
+
2646
+ - Enhance filter functionality with new condition combine type
2647
+ - Improve UI components
2648
+
2649
+ ---
2650
+
2651
+ ## [0.0.71] - Beta
2652
+
2653
+ ### πŸš€ Features
2654
+
2655
+ - Enhance filter components with improved focus handling and cursor styles
2656
+
2657
+ ---
2658
+
2659
+ ## [0.0.69] - Beta
2660
+
2661
+ ### πŸš€ Features
2662
+
2663
+ - Enhance various components with improved functionality and performance
2664
+
2665
+ ---
2666
+
2667
+ ## [0.0.68] - Beta
2668
+
2669
+ ### πŸš€ Features
2670
+
2671
+ - Refactor filter parameters for improved clarity and functionality
2672
+
2673
+ ---
2674
+
2675
+ ## [0.0.66] - Beta
2676
+
2677
+ ### πŸš€ Features
2678
+
2679
+ - Enhance filter components with new data handling methods
2680
+
2681
+ ---
2682
+
2683
+ ## [0.0.62] - Beta
2684
+
2685
+ ### πŸš€ Features
2686
+
2687
+ - Enhance MainCalendar styles for improved UI responsiveness
2688
+
2689
+ ---
2690
+
2691
+ ## [0.0.57] - Beta
2692
+
2693
+ ### πŸš€ Features
2694
+
2695
+ - Enhance refreshTable functionality with async operations
2696
+ - Add loading state management
2697
+ - Improve skeleton loading styles
2698
+
2699
+ ---
2700
+
2701
+ ## [0.0.51] - Beta
2702
+
2703
+ ### πŸš€ Features
2704
+
2705
+ - Enhance refreshTable functionality
2706
+ - Clean up unused imports
2707
+
2708
+ ---
2709
+
2710
+ ## [0.0.47] - Beta
2711
+
2712
+ ### πŸš€ Features
2713
+
2714
+ - Enhance people insight link generation
2715
+ - Fix loading state in useMetricRenderer
2716
+
2717
+ ---
2718
+
2719
+ ## [0.0.46] - Beta
2720
+
2721
+ ### πŸš€ Features
2722
+
2723
+ - Add getWorkspaces method to ItemService
2724
+ - Enhance API configuration
2725
+ - Improve permission handling in CellFactory
2726
+
2727
+ ---
2728
+
2729
+ ## [0.0.43] - Beta
2730
+
2731
+ ### πŸš€ Features
2732
+
2733
+ - Add getMe method to ItemService
2734
+ - Implement user store for managing user state
2735
+ - Enhance FilterBox to utilize user ID
2736
+
2737
+ ---
2738
+
2739
+ ## [0.0.37] - Beta
2740
+
2741
+ ### πŸš€ Features
2742
+
2743
+ - Update isSearchActive computed property to include selectedAssignees
2744
+ - Enhance FilterBox styling for active state
2745
+
2746
+ ---
2747
+
2748
+ ## [0.0.36] - Beta
2749
+
2750
+ ### πŸš€ Features
2751
+
2752
+ - Enhance useItems to ensure all itemIds are included
2753
+ - Update item-table.vue to allow column virtualization
2754
+
2755
+ ---
2756
+
2757
+ ## [0.0.35] - Beta
2758
+
2759
+ ### πŸš€ Features
2760
+
2761
+ - Update downloadExcel function to use globalThis
2762
+ - Improve event handling in ItemService
2763
+ - Enhance useItems for missing itemIds
2764
+
2765
+ ---
2766
+
2767
+ ## [0.0.33] - Beta
2768
+
2769
+ ### πŸš€ Features
2770
+
2771
+ - Update DateRule component spacing in PopupCreateScenes and PopupOverwriteScenes
2772
+
2773
+ ---
2774
+
2775
+ ## [0.0.32] - Beta
2776
+
2777
+ ### πŸš€ Features
2778
+
2779
+ - Update PopupOverwriteScenes to emit import-success event
2780
+ - Handle post-success actions in item-table
2781
+
2782
+ ---
2783
+
2784
+ ## [0.0.31] - Beta
2785
+
2786
+ ### πŸš€ Features
2787
+
2788
+ - Update PopupCreateScenes to emit import-success event
2789
+ - Handle post-success actions
2790
+ - Add console log for table refresh
2791
+
2792
+ ---
2793
+
2794
+ ## [0.0.30] - Beta
2795
+
2796
+ ### πŸš€ Features
2797
+
2798
+ - Update DateRule component with tooltip directive
2799
+ - Adjust z-index values in PopupLayout, Snackbar, and usePopup
2800
+
2801
+ ---
2802
+
2803
+ ## [0.0.28] - Beta
2804
+
2805
+ ### πŸš€ Features
2806
+
2807
+ - Update DateRule, PopupCreateScenes, and PopupOverwriteScenes for improved user guidance
2808
+
2809
+ ---
2810
+
2811
+ ## [0.0.27] - Beta
2812
+
2813
+ ### πŸš€ Features
2814
+
2815
+ - Enhance loading states in buttons and file uploader
2816
+ - Add loading prop to Button component
2817
+ - Improve loading directive
2818
+
2819
+ ---
2820
+
2821
+ ## [0.0.25] - Beta
2822
+
2823
+ ### πŸš€ Features
2824
+
2825
+ - Update DisplayWrapper component to return '100%' for grid template calculation
2826
+
2827
+ ---
2828
+
2829
+ ## [0.0.24] - Beta
2830
+
2831
+ ### πŸš€ Features
2832
+
2833
+ - Implement bulk update store
2834
+ - Integrate with item table and UI components for enhanced selection management
2835
+
2836
+ ---
2837
+
2838
+ ## [0.0.22] - Beta
2839
+
2840
+ ### πŸš€ Features
2841
+
2842
+ - Refactor BulkUpdate component by removing unused elements
2843
+
2844
+ ---
2845
+
2846
+ ## [0.0.21] - Beta
2847
+
2848
+ ### πŸš€ Features
2849
+
2850
+ - Enhance ItemService for dynamic filename handling
2851
+ - Refactor PopupCreateScenes and PopupOverwriteScenes for improved modal name management
2852
+ - Adjust ImportVisual component for better UI responsiveness
2853
+
2854
+ ---
2855
+
2856
+ ## [0.0.20] - Beta
2857
+
2858
+ ### πŸš€ Features
2859
+
2860
+ - Remove console logs
2861
+ - Enhance error handling in ItemService, PopupCreateScenes, PopupOverwriteScenes, and StatusSelect
2862
+
2863
+ ---
2864
+
2865
+ ## [0.0.19] - Beta
2866
+
2867
+ ### πŸš€ Features
2868
+
2869
+ - Refactor DateRule component for tooltip content
2870
+ - Enhance BulkUpdate and FileUploader components
2871
+
2872
+ ---
2873
+
2874
+ ## [0.0.18] - Beta
2875
+
2876
+ ### πŸš€ Features
2877
+
2878
+ - Refactor ItemService methods for workspace and entity handling
2879
+ - Enhance PopupOverwriteScenes for better user feedback
2880
+
2881
+ ---
2882
+
2883
+ ## [0.0.17] - Beta
2884
+
2885
+ ### πŸš€ Features
2886
+
2887
+ - Comment out changeStatus method in ItemService
2888
+ - Update notificationMessage to include success messages for bulkUpdate
2889
+
2890
+ ---
2891
+
2892
+ ## [0.0.15] - Beta
2893
+
2894
+ ### πŸš€ Features
2895
+
2896
+ - Remove default status display in PopupCreateScenes component
2897
+
2898
+ ---
2899
+
2900
+ ## [0.0.14] - Beta
2901
+
2902
+ ### πŸš€ Features
2903
+
2904
+ - Add bulkUpdateMetric method and related API configuration
2905
+ - Enhance MetricUpdateButton and MetricBulkItem components
2906
+
2907
+ ---
2908
+
2909
+ ## [0.0.12] - Beta
2910
+
2911
+ ### πŸš€ Features
2912
+
2913
+ - Add redraw functionality in item-table component
2914
+
2915
+ ---
2916
+
2917
+ ## [0.0.8] - Beta
2918
+
2919
+ ### πŸš€ Features
2920
+
2921
+ - Comment out primary color in Button styles
2922
+
2923
+ ---
2924
+
2925
+ ## [0.0.5] - Beta
2926
+
2927
+ ### πŸš€ Features
2928
+
2929
+ - Update TableCustomization component to set disabled to false and readOnly to true
2930
+
2931
+ ---
2932
+
2933
+ ## [0.0.4] - Beta
2934
+
2935
+ ### πŸš€ Features
2936
+
2937
+ - Update disabled state styling in RatingComponent
2938
+ - Update user status terminology from 'online' to 'active'
2939
+
2940
+ ---
2941
+
2942
+ ## [0.0.3] - Beta
2943
+
2944
+ ### πŸš€ Features
2945
+
2946
+ - Update TableCustomization and MetricRenderer components with improved props handling
2947
+
2948
+ ---
2949
+
2950
+ ## [0.0.1] - Initial Release
2951
+
2952
+ ### πŸš€ Core Features
2953
+
2954
+ - Implement core table functionality with AG Grid integration
2955
+ - Implement cursor-based pagination for item fetching
2956
+ - Implement ItemService and refactor API structure
2957
+ - Implement SessionStorageHelper for session storage management
2958
+ - Implement user service and error handling with API response types
2959
+ - Add API services with Axios configuration, endpoints, and CRUD operations
2960
+
2961
+ ### πŸ“¦ UI Components
2962
+
2963
+ - Add Avatar, Button, DisplayWrapper, Icon, InputText, StatusBadge, Visual components
2964
+ - Add LoadingTable component with skeleton loading UI
2965
+ - Add SearchBox component for search functionality
2966
+ - Add HyperLinkInlineEditor component
2967
+ - Add PopupOverwriteScenes component for scene import
2968
+ - Add RatingRenderer component for displaying ratings
2969
+ - Add Skeleton component and enhance loading indicators
2970
+ - Implement CreateNewScene component and useNewItemForm composable
2971
+
2972
+ ### πŸ”§ Configuration
2973
+
2974
+ - Add Cypress configuration and initial test files
2975
+ - Add ESLint configuration and update type imports
2976
+ - Add Vite configuration for Vue application
2977
+ - Add TypeScript types and configuration files
2978
+ - Integrate Pinia for state management in Storybook
2979
+
2980
+ ### πŸ› Bug Fixes
2981
+
2982
+ - Update package.json and pnpm-lock.yaml for dashboard and ui dependencies
2983
+
2984
+ ---