@wipco/sdui 0.36.0 → 0.37.0

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/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import React__default, { CSSProperties, ReactNode, ComponentType } from 'react';
3
- import { S as SduiPage, a as SduiAction, b as SduiPropValue, c as SduiRule } from './types-Rngs8hw_.js';
4
- export { d as SduiArgRef, e as SduiCalcRef, f as SduiChild, g as SduiIndexRef, h as SduiItemRef, i as SduiNode, j as SduiPageQuery, k as SduiScalar, l as SduiStateRef } from './types-Rngs8hw_.js';
3
+ import { S as SduiPage, a as SduiAction, b as SduiPropValue, c as SduiRule } from './types-Bx3oingj.js';
4
+ export { d as SduiArgRef, e as SduiCalcRef, f as SduiChild, g as SduiIndexRef, h as SduiItemRef, i as SduiNode, j as SduiPageQuery, k as SduiScalar, l as SduiStateRef } from './types-Bx3oingj.js';
5
5
  import { S as SduiBoxProps, a as SduiContainerLayoutProps, b as SduiColumnsScale, c as SduiGapScale, d as SduiWeightScale, e as SduiTextAlignScale } from './layout-B1QrIBm6.js';
6
6
  export { C as CHILD_LAYOUT_PROPS, L as LAYOUT_CSS, f as SduiAlignScale, g as SduiChildLayoutProps, h as SduiSizeScale, i as SduiSpanScale, j as childLayoutFrom, k as columnsClass, l as containerLayoutStyle, m as joinClass, n as mergeStyle, t as typographyStyle } from './layout-B1QrIBm6.js';
7
7
  import { D as DatePickerProps, a as DateRangePickerProps, T as TimePickerProps } from './DatePicker-D2EtpvkQ.js';
package/dist/index.js CHANGED
@@ -1675,7 +1675,8 @@ var FIELD_OPS = /* @__PURE__ */ new Set([
1675
1675
  "startsWith",
1676
1676
  "endsWith",
1677
1677
  "isNull",
1678
- "isEmpty"
1678
+ "isEmpty",
1679
+ "intersects"
1679
1680
  ]);
1680
1681
  function isFieldOpObject(v) {
1681
1682
  return isPlainObject(v) && Object.keys(v).some((key) => FIELD_OPS.has(key));
@@ -1709,6 +1710,13 @@ function matchesFieldOps(actual, ops, resolve) {
1709
1710
  return String(actual ?? "").endsWith(String(expected ?? ""));
1710
1711
  case "isNull":
1711
1712
  return isBlank(actual) === Boolean(expected);
1713
+ case "intersects": {
1714
+ const mine = Array.isArray(actual) ? actual : [];
1715
+ const theirs = Array.isArray(expected) ? expected : [];
1716
+ if (mine.length === 0 || theirs.length === 0) return false;
1717
+ const set = new Set(theirs.map((item) => String(item ?? "")));
1718
+ return mine.some((item) => set.has(String(item ?? "")));
1719
+ }
1712
1720
  case "isEmpty":
1713
1721
  return isEmptyValue(actual) === Boolean(expected);
1714
1722
  default:
package/dist/meta.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { b as SduiPropValue, i as SduiNode } from './types-Rngs8hw_.js';
1
+ import { b as SduiPropValue, i as SduiNode } from './types-Bx3oingj.js';
2
2
 
3
3
  /**
4
4
  * 시각 빌더용 컴포넌트 메타데이터 스키마.
@@ -108,7 +108,9 @@ interface SduiCalcRef {
108
108
  * "OR": [ { "status": "open" }, { "owner": { "isNull": true } } ] }
109
109
  *
110
110
  * 필드 연산: eq · ne · gt · gte · lt · lte · in · notIn · contains ·
111
- * startsWith · endsWith · isNull · isEmpty. 값이 연산 객체가 아니면 `eq`로 읽는다.
111
+ * startsWith · endsWith · isNull · isEmpty · intersects. 값이 연산 객체가 아니면
112
+ * `eq`로 읽는다. `in`은 "행의 값이 목록에 있는가", `intersects`는 "행의 **배열**이
113
+ * 목록과 겹치는가" — 방향이 반대다(구성원·태그 목록을 거르는 자리).
112
114
  * (`isNull`은 null·undefined·''를, `isEmpty`는 거기에 빈 배열·빈 객체까지 본다.)
113
115
  * 같은 객체의 키들은 AND이고, `AND`/`OR`는 술어 배열, `NOT`은 술어 하나다.
114
116
  * 술어 안의 값에도 참조를 쓸 수 있는데, 이때 `$item`은 거르고 있는 행이 아니라
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "0.36.0",
3
+ "version": "0.37.0",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",