@wipco/sdui 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { orderCircleStyle, ellipsisStyle, unwrapRows, uid } from './chunk-YOLT2TPX.js';
2
- import { includesLooseSearch } from './chunk-ZOEQL2YL.js';
2
+ import { includesLooseSearch } from './chunk-ECBSYHZU.js';
3
3
  import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-XFNHHGFR.js';
4
4
  import { Icon, Badge, IconButton, Field, Select, Input, Tag, Spinner, Button, isPlainObject } from './chunk-KIHN7DGA.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
@@ -37,9 +37,14 @@ function Popover({
37
37
  const hostRef = useRef(null);
38
38
  const closeRef = useRef(onClose);
39
39
  closeRef.current = onClose;
40
+ const insideEventRef = useRef(null);
41
+ const markInside = (event) => {
42
+ insideEventRef.current = event.nativeEvent;
43
+ };
40
44
  useEffect(() => {
41
45
  if (!open) return;
42
46
  const closeOnOutside = (event) => {
47
+ if (insideEventRef.current === event) return;
43
48
  if (event.target instanceof Node && hostRef.current?.contains(event.target)) return;
44
49
  closeRef.current();
45
50
  };
@@ -51,7 +56,7 @@ function Popover({
51
56
  }, [open, inline]);
52
57
  useOverlayLayer(open, () => closeRef.current(), hostRef);
53
58
  if (inline) {
54
- return /* @__PURE__ */ jsxs("div", { ref: hostRef, className: "wp-popover-host erp-popover-host", children: [
59
+ return /* @__PURE__ */ jsxs("div", { ref: hostRef, className: "wp-popover-host erp-popover-host", onClickCapture: markInside, children: [
55
60
  /* @__PURE__ */ jsx(HoistedStyle, { id: "wp-popover", css: POPOVER_CSS }),
56
61
  trigger,
57
62
  open ? /* @__PURE__ */ jsxs("div", { className: "wp-popover-inline", children: [
@@ -63,7 +68,7 @@ function Popover({
63
68
  return (
64
69
  // 트리거와 패널을 함께 감싸는 기준 상자 — .wp-popover-host의 position:relative가
65
70
  // 패널 absolute의 기준이 된다
66
- /* @__PURE__ */ jsxs("div", { ref: hostRef, className: "wp-popover-host erp-popover-host", children: [
71
+ /* @__PURE__ */ jsxs("div", { ref: hostRef, className: "wp-popover-host erp-popover-host", onPointerDownCapture: markInside, children: [
67
72
  /* @__PURE__ */ jsx(HoistedStyle, { id: "wp-popover", css: POPOVER_CSS }),
68
73
  trigger,
69
74
  open ? (
@@ -1,5 +1,5 @@
1
1
  import { TagMultiSelect } from './chunk-TCHXA35K.js';
2
- import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-NLN5SLU7.js';
2
+ import { ApprovalLineEditor, stepTypeIcon, stepLabel } from './chunk-2TUCSOZR.js';
3
3
  import { orderCircleStyle, unwrapRows, uid } from './chunk-YOLT2TPX.js';
4
4
  import { useSduiAdapter, hostFetchOf, defaultAdapter } from './chunk-XFNHHGFR.js';
5
5
  import { Card, Icon, Input, IconButton, Field, Button, Badge } from './chunk-KIHN7DGA.js';
@@ -1,4 +1,4 @@
1
- import { buildCascadingTree } from './chunk-ZOEQL2YL.js';
1
+ import { buildCascadingTree } from './chunk-ECBSYHZU.js';
2
2
  import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-KIHN7DGA.js';
3
3
  import { boxed } from './chunk-3JTBOABA.js';
4
4
  import React, { useMemo, useState, useRef, useEffect } from 'react';
@@ -1,4 +1,4 @@
1
- import { includesLooseSearch } from './chunk-ZOEQL2YL.js';
1
+ import { includesLooseSearch } from './chunk-ECBSYHZU.js';
2
2
  import { OverlayLayer } from './chunk-R2ORCOTG.js';
3
3
  import { Button, Dialog, Input, Tag, Checkbox } from './chunk-KIHN7DGA.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
@@ -1,5 +1,5 @@
1
1
  import { ellipsisStyle, unwrapRows } from './chunk-YOLT2TPX.js';
2
- import { includesLooseSearch } from './chunk-ZOEQL2YL.js';
2
+ import { includesLooseSearch } from './chunk-ECBSYHZU.js';
3
3
  import { useSduiAdapter, hostFetchOf } from './chunk-XFNHHGFR.js';
4
4
  import { Icon, Button, Input, Spinner } from './chunk-KIHN7DGA.js';
5
5
  import { boxed } from './chunk-3JTBOABA.js';
@@ -1,4 +1,4 @@
1
- import { resolveTreeNodes, TreeView } from './chunk-MSPBNI2M.js';
1
+ import { resolveTreeNodes, TreeView } from './chunk-L2WC45T3.js';
2
2
  import { OverlayLayer } from './chunk-R2ORCOTG.js';
3
3
  import { Field, Dialog, Icon, Button, Input } from './chunk-KIHN7DGA.js';
4
4
  import { boxed } from './chunk-3JTBOABA.js';
package/dist/index.js CHANGED
@@ -5,8 +5,8 @@ import { Text, Spacer, Show, Section, Row, PageHead, KeyValueList, Grid, Divider
5
5
  export { Actions, Col, Divider, Grid, KeyValueList, PageHead, Row, Section, Show, Spacer, Text } from './chunk-YK7ZNV2C.js';
6
6
  import { ImageViewer } from './chunk-PN5IJPA5.js';
7
7
  export { ImageViewer } from './chunk-PN5IJPA5.js';
8
- import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-ZOEQL2YL.js';
9
- export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-ZOEQL2YL.js';
8
+ import { normalizeSearchFields, searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-ECBSYHZU.js';
9
+ export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-ECBSYHZU.js';
10
10
  import { parseYmd, YMD_RE, TimePicker, DateRangePicker, DatePicker } from './chunk-LKSGAILO.js';
11
11
  export { DatePicker, DateRangePicker, TimePicker } from './chunk-LKSGAILO.js';
12
12
  import './chunk-KJDHF6VU.js';
@@ -1,6 +1,6 @@
1
- export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-NLN5SLU7.js';
1
+ export { ApprovalLineEditor, stepLabel, stepTypeIcon } from '../chunk-2TUCSOZR.js';
2
2
  import '../chunk-YOLT2TPX.js';
3
- import '../chunk-ZOEQL2YL.js';
3
+ import '../chunk-ECBSYHZU.js';
4
4
  import '../chunk-LKSGAILO.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
@@ -1,8 +1,8 @@
1
- export { ApprovalOverridesEditor, facetsFrom } from '../chunk-SQYLAWQP.js';
1
+ export { ApprovalOverridesEditor, facetsFrom } from '../chunk-HSHVR6VH.js';
2
2
  import '../chunk-TCHXA35K.js';
3
- import '../chunk-NLN5SLU7.js';
3
+ import '../chunk-2TUCSOZR.js';
4
4
  import '../chunk-YOLT2TPX.js';
5
- import '../chunk-ZOEQL2YL.js';
5
+ import '../chunk-ECBSYHZU.js';
6
6
  import '../chunk-LKSGAILO.js';
7
7
  import '../chunk-KJDHF6VU.js';
8
8
  import '../chunk-R2ORCOTG.js';
@@ -1,6 +1,6 @@
1
- export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-4PYOXXZJ.js';
1
+ export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-OB425KVK.js';
2
2
  import '../chunk-YOLT2TPX.js';
3
- import '../chunk-ZOEQL2YL.js';
3
+ import '../chunk-ECBSYHZU.js';
4
4
  import '../chunk-LKSGAILO.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
@@ -1,5 +1,5 @@
1
- export { SearchableMultiPicker } from '../chunk-WLHF5MVE.js';
2
- import '../chunk-ZOEQL2YL.js';
1
+ export { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
2
+ import '../chunk-ECBSYHZU.js';
3
3
  import '../chunk-LKSGAILO.js';
4
4
  import '../chunk-KJDHF6VU.js';
5
5
  import '../chunk-R2ORCOTG.js';
@@ -1,6 +1,6 @@
1
- export { TreePicker } from '../chunk-POETCJUR.js';
2
- import '../chunk-MSPBNI2M.js';
3
- import '../chunk-ZOEQL2YL.js';
1
+ export { TreePicker } from '../chunk-RDQO43Y5.js';
2
+ import '../chunk-L2WC45T3.js';
3
+ import '../chunk-ECBSYHZU.js';
4
4
  import '../chunk-LKSGAILO.js';
5
5
  import '../chunk-KJDHF6VU.js';
6
6
  import '../chunk-R2ORCOTG.js';
@@ -1,5 +1,5 @@
1
- export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox } from '../chunk-MSPBNI2M.js';
2
- import '../chunk-ZOEQL2YL.js';
1
+ export { TreeView, ancestorIdsOf, buildTreeNodes, pruneExcluded, resolveTreeNodes, scrollRowIntoBox } from '../chunk-L2WC45T3.js';
2
+ import '../chunk-ECBSYHZU.js';
3
3
  import '../chunk-LKSGAILO.js';
4
4
  import '../chunk-KJDHF6VU.js';
5
5
  import '../chunk-R2ORCOTG.js';
@@ -1,7 +1,7 @@
1
- import { TreePicker } from '../chunk-POETCJUR.js';
2
- export { TreePicker } from '../chunk-POETCJUR.js';
3
- import { TreeView } from '../chunk-MSPBNI2M.js';
4
- export { TreeView, buildTreeNodes } from '../chunk-MSPBNI2M.js';
1
+ import { TreePicker } from '../chunk-RDQO43Y5.js';
2
+ export { TreePicker } from '../chunk-RDQO43Y5.js';
3
+ import { TreeView } from '../chunk-L2WC45T3.js';
4
+ export { TreeView, buildTreeNodes } from '../chunk-L2WC45T3.js';
5
5
  import { SecureScreen } from '../chunk-ITFSPOOB.js';
6
6
  export { SecureScreen } from '../chunk-ITFSPOOB.js';
7
7
  import { StackedMeter } from '../chunk-EJIWOD7W.js';
@@ -30,8 +30,8 @@ import { RecordSheet } from '../chunk-VR4DQTWR.js';
30
30
  export { RecordSheet } from '../chunk-VR4DQTWR.js';
31
31
  import { RoleMemberPicker } from '../chunk-QP7AQEGZ.js';
32
32
  export { RoleMemberPicker } from '../chunk-QP7AQEGZ.js';
33
- import { SearchableMultiPicker } from '../chunk-WLHF5MVE.js';
34
- export { SearchableMultiPicker } from '../chunk-WLHF5MVE.js';
33
+ import { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
34
+ export { SearchableMultiPicker } from '../chunk-LAGO4H4U.js';
35
35
  import { JsonField } from '../chunk-PGAP2RLS.js';
36
36
  export { JsonField } from '../chunk-PGAP2RLS.js';
37
37
  import { LiveClock } from '../chunk-37BNG4DT.js';
@@ -50,7 +50,7 @@ import { PermissionMatrixEditor } from '../chunk-DNUO63VZ.js';
50
50
  export { PermissionMatrixEditor, stickyInsetOf } from '../chunk-DNUO63VZ.js';
51
51
  import { PeriodFilter } from '../chunk-6AFQPHLW.js';
52
52
  export { PeriodFilter } from '../chunk-6AFQPHLW.js';
53
- export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-4PYOXXZJ.js';
53
+ export { AutocompleteField, endpointSearchFn, toAutocompleteOptions } from '../chunk-OB425KVK.js';
54
54
  import { ColumnBoard } from '../chunk-CUAGMSSG.js';
55
55
  export { ColumnBoard } from '../chunk-CUAGMSSG.js';
56
56
  import { DiffView } from '../chunk-DDX7KJAW.js';
@@ -67,14 +67,14 @@ export { InlineEdit } from '../chunk-FXEKHHEA.js';
67
67
  import '../chunk-O3SD2HS6.js';
68
68
  import '../chunk-YK7ZNV2C.js';
69
69
  import '../chunk-PN5IJPA5.js';
70
- import { ApprovalOverridesEditor } from '../chunk-SQYLAWQP.js';
71
- export { ApprovalOverridesEditor } from '../chunk-SQYLAWQP.js';
70
+ import { ApprovalOverridesEditor } from '../chunk-HSHVR6VH.js';
71
+ export { ApprovalOverridesEditor } from '../chunk-HSHVR6VH.js';
72
72
  import { TagMultiSelect } from '../chunk-TCHXA35K.js';
73
73
  export { TagMultiSelect, pickSeedValues } from '../chunk-TCHXA35K.js';
74
- import { ApprovalLineEditor } from '../chunk-NLN5SLU7.js';
75
- export { ApprovalLineEditor } from '../chunk-NLN5SLU7.js';
74
+ import { ApprovalLineEditor } from '../chunk-2TUCSOZR.js';
75
+ export { ApprovalLineEditor } from '../chunk-2TUCSOZR.js';
76
76
  import '../chunk-YOLT2TPX.js';
77
- import '../chunk-ZOEQL2YL.js';
77
+ import '../chunk-ECBSYHZU.js';
78
78
  import '../chunk-LKSGAILO.js';
79
79
  import '../chunk-KJDHF6VU.js';
80
80
  import '../chunk-R2ORCOTG.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wipco/sdui",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
4
4
  "description": "WIPCO 서버 주도 UI(SDUI) 렌더러 — JSON 페이지 스펙을 React 컴포넌트로 렌더링",
5
5
  "keywords": [
6
6
  "sdui",