@arbocollab/arbo-plugin-item-table 0.0.203 → 0.1.2

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 CHANGED
@@ -2,6 +2,77 @@
2
2
 
3
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
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
+
5
76
  ## [0.0.194] - 2026-02-26
6
77
 
7
78
  ### 🚀 Features
@@ -7626,7 +7626,7 @@ const Lm = {
7626
7626
  placement: "top",
7627
7627
  trigger: "mouseenter focus",
7628
7628
  hideOnClick: !1,
7629
- delay: [1e3, 0],
7629
+ delay: [300, 0],
7630
7630
  theme: "arbo",
7631
7631
  contentClass: "extra-padding",
7632
7632
  bypassOverflowCheck: !0,
@@ -11197,7 +11197,7 @@ const pz = (e) => {
11197
11197
  (i = e._userProfileInstance) == null || i.hide();
11198
11198
  }, e._userProfileInstance = rk(e, {
11199
11199
  ...ik,
11200
- delay: [1e3, 0],
11200
+ delay: [300, 0],
11201
11201
  content: ((s = n.user) == null ? void 0 : s.name) || "User",
11202
11202
  placement: n.placement || "bottom-start",
11203
11203
  trigger: "mouseenter focus",
@@ -25469,7 +25469,7 @@ const Qf = (e) => {
25469
25469
  } else E.key === "Escape" && s.value && (E.preventDefault(), v());
25470
25470
  }
25471
25471
  const C = Object.freeze({
25472
- delay: [500, 0],
25472
+ delay: [300, 0],
25473
25473
  contentClass: ["extra-padding"]
25474
25474
  }), R = TE();
25475
25475
  return nt(
@@ -30650,8 +30650,7 @@ const _X = {
30650
30650
  );
30651
30651
  const S = async (O) => {
30652
30652
  var F, D, x;
30653
- const A = await T(O);
30654
- console.log(" API response for removing assignee:", A), A && (i.value = (F = i.value) == null ? void 0 : F.filter((P) => P.id !== O), (x = o.params) == null || x.node.setData({
30653
+ await T(O) && (i.value = (F = i.value) == null ? void 0 : F.filter((P) => P.id !== O), (x = o.params) == null || x.node.setData({
30655
30654
  ...(D = o.params) == null ? void 0 : D.node.data,
30656
30655
  assignees: i.value
30657
30656
  }));
@@ -31187,7 +31186,7 @@ const _X = {
31187
31186
  }, null, 8, ["src"])), [
31188
31187
  [W(n), {
31189
31188
  content: e.option.label,
31190
- delay: [500, 0],
31189
+ delay: [300, 0],
31191
31190
  contentClass: ["extra-padding"]
31192
31191
  }]
31193
31192
  ]) : Ye("", !0)
@@ -31217,7 +31216,7 @@ const _X = {
31217
31216
  })), [
31218
31217
  [W(n), {
31219
31218
  content: "Cancel ",
31220
- delay: [500, 0],
31219
+ delay: [300, 0],
31221
31220
  contentClass: ["extra-padding"]
31222
31221
  }]
31223
31222
  ]),
@@ -31235,7 +31234,7 @@ const _X = {
31235
31234
  _: 1
31236
31235
  })), [
31237
31236
  [W(n), {
31238
- delay: [500, 0],
31237
+ delay: [300, 0],
31239
31238
  contentClass: ["extra-padding"],
31240
31239
  content: "Confirm ",
31241
31240
  theme: "warning"
@@ -31267,7 +31266,8 @@ const _X = {
31267
31266
  content: e.option.description,
31268
31267
  contentClass: ["extra-padding"],
31269
31268
  theme: e.option.isDanger ? "warning" : "arbo",
31270
- hideOnClick: !1
31269
+ hideOnClick: !1,
31270
+ delay: [300, 0]
31271
31271
  // trigger: 'mouseenter focus',
31272
31272
  }]
31273
31273
  ]);
@@ -35652,15 +35652,7 @@ const Rte = /* @__PURE__ */ ct({
35652
35652
  const t = e, n = bN(), { sorts: o } = es(n), s = j(() => {
35653
35653
  var l, u;
35654
35654
  return ((u = (l = t.params) == null ? void 0 : l.column) == null ? void 0 : u.getColId()) || "template_col_id";
35655
- });
35656
- nt(
35657
- () => t.params.context,
35658
- () => {
35659
- console.log("Context changed:", t.params.context);
35660
- },
35661
- { deep: !0, immediate: !0 }
35662
- );
35663
- const i = (l) => {
35655
+ }), i = (l) => {
35664
35656
  s.value && n.setSort(s.value, l);
35665
35657
  }, r = j(() => t.params.headerType || void 0), a = L("none");
35666
35658
  return nt(
@@ -35842,7 +35834,7 @@ const my = /* @__PURE__ */ Eu("userStore", () => {
35842
35834
  );
35843
35835
  const we = (ve) => {
35844
35836
  var te;
35845
- console.log("Removing user with ID:", ve), F.value = (te = F.value) == null ? void 0 : te.filter((_e) => _e.id !== ve);
35837
+ F.value = (te = F.value) == null ? void 0 : te.filter((_e) => _e.id !== ve);
35846
35838
  }, de = (ve) => {
35847
35839
  var _e;
35848
35840
  const te = Sn.getInstance().getItem("ws.code");
@@ -36227,7 +36219,7 @@ const my = /* @__PURE__ */ Eu("userStore", () => {
36227
36219
  }
36228
36220
  }, Z = (Q, G) => {
36229
36221
  var re;
36230
- G.stopImmediatePropagation(), G.preventDefault(), G.stopPropagation(), console.log("Toggling status:", Q, G);
36222
+ G.stopImmediatePropagation(), G.preventDefault(), G.stopPropagation();
36231
36223
  const q = Q.id;
36232
36224
  c.value = q, (re = E.value) == null || re.focus(), S("update:modelValue", c.value), u();
36233
36225
  }, B = async () => {
@@ -36328,7 +36320,7 @@ const my = /* @__PURE__ */ Eu("userStore", () => {
36328
36320
  empty: Pne
36329
36321
  }, kne = {
36330
36322
  $style: Ane
36331
- }, One = /* @__PURE__ */ _t(Fne, [["__cssModules", kne], ["__scopeId", "data-v-2e3a908e"]]), Mne = /* @__PURE__ */ ct({
36323
+ }, One = /* @__PURE__ */ _t(Fne, [["__cssModules", kne], ["__scopeId", "data-v-38b31f5c"]]), Mne = /* @__PURE__ */ ct({
36332
36324
  __name: "CreateNewScene",
36333
36325
  emits: ["create-new-item", "focus-on-id", "search-for-code"],
36334
36326
  setup(e, { expose: t, emit: n }) {
@@ -36497,7 +36489,7 @@ const my = /* @__PURE__ */ Eu("userStore", () => {
36497
36489
  }
36498
36490
  try {
36499
36491
  const $t = await p.value.addNewItem(r, a, N), gn = c.name;
36500
- if (U($t.id, $t.name, $t.code), console.log("Scene created successfully:", $t), !$t.id)
36492
+ if (U($t.id, $t.name, $t.code), !$t.id)
36501
36493
  throw new Error("Invalid response from server: missing scene ID");
36502
36494
  switch (k) {
36503
36495
  case "close":
@@ -42344,7 +42336,7 @@ class mC {
42344
42336
  var n, o, s, i, r;
42345
42337
  const t = document.createElement("div");
42346
42338
  return (n = this.params) != null && n.height && t.style.setProperty("--height", (o = this.params) == null ? void 0 : o.height), (s = this.params) != null && s.width ? t.style.setProperty("--width", (i = this.params) == null ? void 0 : i.width) : (r = this.params) != null && r.fullwidth ? t.style.setProperty("--width", "100%") : t.style.setProperty("--width", `${Math.floor(Math.random() * 50) + 50}%`), t.className = "ag-cell-skeleton", t.addEventListener("click", (a) => {
42347
- console.log("Clicked loading skeleton", a), a.preventDefault(), a.stopPropagation(), a.stopImmediatePropagation();
42339
+ a.preventDefault(), a.stopPropagation(), a.stopImmediatePropagation();
42348
42340
  }), this.eGui = t, t;
42349
42341
  }
42350
42342
  refresh(t) {
@@ -84010,7 +84002,7 @@ class AB extends Z_e {
84010
84002
  params: {
84011
84003
  status_ed: 1,
84012
84004
  include: "metric_type",
84013
- entity_ids: n,
84005
+ entity_id: n,
84014
84006
  include_permission: 1,
84015
84007
  per_page: i || 100,
84016
84008
  page: o || 1,
@@ -85737,7 +85729,7 @@ const sRe = {
85737
85729
  "beta-tag": "_beta-tag_1lefh_57"
85738
85730
  }, TRe = {
85739
85731
  $style: DRe
85740
- }, xRe = /* @__PURE__ */ _t(CRe, [["__cssModules", TRe]]), kB = "0.0.203", FRe = { key: 0 }, IRe = /* @__PURE__ */ ct({
85732
+ }, xRe = /* @__PURE__ */ _t(CRe, [["__cssModules", TRe]]), kB = "0.1.2", FRe = { key: 0 }, IRe = /* @__PURE__ */ ct({
85741
85733
  __name: "app",
85742
85734
  setup(e) {
85743
85735
  const t = j(() => n.id.length === 0 || n.workspaceId.length === 0), n = ti({