@wipco/sdui 0.8.0 → 0.9.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/{chunk-7MRAY6UD.js → chunk-3PYMVHL3.js} +1 -1
- package/dist/{chunk-YMWU4F7E.js → chunk-4CZJF5PR.js} +1 -1
- package/dist/{chunk-RQ2FWV24.js → chunk-4IRLQWQC.js} +1 -1
- package/dist/{chunk-27APKNEI.js → chunk-5A7BWIGN.js} +1 -1
- package/dist/{chunk-VPVCVSFH.js → chunk-7AHNAX6T.js} +1 -1
- package/dist/{chunk-6FADQ2SU.js → chunk-B5JTXYDB.js} +1 -2
- package/dist/{chunk-IKLBICOJ.js → chunk-BT4HC3WR.js} +1 -1
- package/dist/{chunk-VCX2XEF6.js → chunk-JONNWN6N.js} +1 -1
- package/dist/{chunk-6ZUWN2QX.js → chunk-JWYBFODH.js} +1 -1
- package/dist/{chunk-WUTCZCQH.js → chunk-NIRR6KSQ.js} +1 -1
- package/dist/{chunk-H7V35NC2.js → chunk-OINKP2BE.js} +2 -2
- package/dist/{chunk-OM63D4UH.js → chunk-TBAIREB3.js} +2 -2
- package/dist/{chunk-KPDUJFVD.js → chunk-TMAVD3WL.js} +1 -1
- package/dist/{chunk-QTNIUMSM.js → chunk-VK6KWB65.js} +1 -1
- package/dist/{chunk-6ALDY64N.js → chunk-VV73LOAE.js} +2 -2
- package/dist/{chunk-7Y6UFAYZ.js → chunk-WJEGCCPY.js} +1 -1
- package/dist/{chunk-CEFOZOOM.js → chunk-WLWWN5LW.js} +1 -1
- package/dist/{chunk-KL554MEM.js → chunk-WMPSOKNI.js} +1 -1
- package/dist/{chunk-5RWAK5QO.js → chunk-X3DGYP4W.js} +1 -1
- package/dist/{chunk-I5GNJDHQ.js → chunk-YFUQUWWH.js} +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +197 -25
- package/dist/meta.d.ts +1 -1
- package/dist/rich.js +3 -3
- package/dist/{types-D5Tkrynd.d.ts → types-Dl4rPyan.d.ts} +48 -1
- package/dist/widgets/AutocompleteField.js +3 -3
- package/dist/widgets/ColumnBoard.js +2 -2
- package/dist/widgets/DiffView.js +2 -2
- package/dist/widgets/Disclosure.js +2 -2
- package/dist/widgets/EventCalendar.js +2 -2
- package/dist/widgets/ImageLightbox.js +2 -2
- package/dist/widgets/InlineEdit.js +2 -2
- package/dist/widgets/JsonField.js +2 -2
- package/dist/widgets/OrgChart.js +2 -2
- package/dist/widgets/PeriodFilter.js +2 -2
- package/dist/widgets/PrintSheet.js +2 -2
- package/dist/widgets/SearchableMultiPicker.js +3 -3
- package/dist/widgets/SecureScreen.js +2 -2
- package/dist/widgets/TagMultiSelect.js +2 -2
- package/dist/widgets/Timeline.js +3 -3
- package/dist/widgets/TreePicker.js +3 -3
- package/dist/widgets/TreeView.js +2 -2
- package/dist/widgets/index.js +35 -35
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Icon } from './chunk-
|
|
1
|
+
import { Icon } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { createContext, useState, useRef, useMemo, useCallback, useEffect, useLayoutEffect, useContext } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IconButton, Input } from './chunk-
|
|
1
|
+
import { IconButton, Input } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1308,11 +1308,10 @@ function Tooltip({ label, shortcut, placement = "top", wrap = false, children, c
|
|
|
1308
1308
|
}[placement];
|
|
1309
1309
|
const classes = ["wp-tooltip", "wp-tooltip--" + placement];
|
|
1310
1310
|
if (wrap) classes.push("wp-tooltip--wrap");
|
|
1311
|
-
if (className) classes.push(className);
|
|
1312
1311
|
return /* @__PURE__ */ jsxs(
|
|
1313
1312
|
"span",
|
|
1314
1313
|
{
|
|
1315
|
-
className: "wp-tooltip-host",
|
|
1314
|
+
className: joinClass("wp-tooltip-host", className),
|
|
1316
1315
|
onMouseEnter: () => setOpen(true),
|
|
1317
1316
|
onMouseLeave: () => setOpen(false),
|
|
1318
1317
|
onFocus: () => setOpen(true),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IconButton, Badge } from './chunk-
|
|
1
|
+
import { IconButton, Badge } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useRef, useState, useMemo, useCallback, useEffect } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Textarea, Icon } from './chunk-
|
|
1
|
+
import { Textarea, Icon } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useState, useRef, useId, useEffect, useCallback } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tag, Input, Button, IconButton, Field, Checkbox } from './chunk-
|
|
1
|
+
import { Tag, Input, Button, IconButton, Field, Checkbox } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { useRef, useEffect, useState, useMemo } from 'react';
|
|
3
3
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { includesLooseSearch } from './chunk-
|
|
2
|
-
import { Button, Dialog, Input, Tag, Checkbox } from './chunk-
|
|
1
|
+
import { includesLooseSearch } from './chunk-NIRR6KSQ.js';
|
|
2
|
+
import { Button, Dialog, Input, Tag, Checkbox } from './chunk-B5JTXYDB.js';
|
|
3
3
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
4
4
|
import React, { useMemo, useState, useEffect } from 'react';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { includesLooseSearch } from './chunk-
|
|
2
|
-
import { Icon, Button, Input, Spinner } from './chunk-
|
|
1
|
+
import { includesLooseSearch } from './chunk-NIRR6KSQ.js';
|
|
2
|
+
import { Icon, Button, Input, Spinner } from './chunk-B5JTXYDB.js';
|
|
3
3
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
4
4
|
import { useId, useRef, useState, useEffect, useMemo } from 'react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Badge, Checkbox, IconButton, Icon } from './chunk-
|
|
1
|
+
import { Badge, Checkbox, IconButton, Icon } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useState, useEffect } from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TreeView } from './chunk-
|
|
2
|
-
import { Field, Dialog, Icon, Button, Input } from './chunk-
|
|
1
|
+
import { TreeView } from './chunk-X3DGYP4W.js';
|
|
2
|
+
import { Field, Dialog, Icon, Button, Input } from './chunk-B5JTXYDB.js';
|
|
3
3
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
4
4
|
import { useState, useEffect } from 'react';
|
|
5
5
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SegmentedControl, Select, Input } from './chunk-
|
|
1
|
+
import { SegmentedControl, Select, Input } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useState, useMemo } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SegmentedControl, IconButton, Button, Tag, EmptyState, Icon, Badge } from './chunk-
|
|
1
|
+
import { SegmentedControl, IconButton, Button, Tag, EmptyState, Icon, Badge } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import { useState, useMemo } from 'react';
|
|
4
4
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-
|
|
1
|
+
import { Input, IconButton, EmptyState, Icon, Badge } from './chunk-B5JTXYDB.js';
|
|
2
2
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
3
3
|
import React, { useState, useMemo } from 'react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Disclosure } from './chunk-
|
|
2
|
-
import { Icon } from './chunk-
|
|
1
|
+
import { Disclosure } from './chunk-WLWWN5LW.js';
|
|
2
|
+
import { Icon } from './chunk-B5JTXYDB.js';
|
|
3
3
|
import { boxed } from './chunk-SAN4IX6N.js';
|
|
4
4
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
5
|
|
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 SduiAction, a as SduiPropValue, b as SduiRule, c as SduiPage } from './types-
|
|
4
|
-
export { d as SduiCalcRef, e as SduiChild, f as SduiIndexRef, g as SduiItemRef, h as SduiNode, i as
|
|
3
|
+
import { S as SduiAction, a as SduiPropValue, b as SduiRule, c as SduiPage } from './types-Dl4rPyan.js';
|
|
4
|
+
export { d as SduiCalcRef, e as SduiChild, f as SduiIndexRef, g as SduiItemRef, h as SduiNode, i as SduiPageQuery, j as SduiScalar, k as SduiStateRef } from './types-Dl4rPyan.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 } from './DatePicker-BndreCPl.js';
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DEV, HoistedStyle, isSafeNavigationTarget, useSduiAdapter, hostFetchOf, DateRangePicker, DatePicker, useSduiSandbox, resolveAdapter, assetResolverOf, SduiAdapterContext } from './chunk-
|
|
2
|
-
export { DatePicker, DateRangePicker, defaultAdapter, useSduiAssetResolver, useSduiSandbox } from './chunk-
|
|
3
|
-
import { searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-
|
|
4
|
-
export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-
|
|
5
|
-
import { EmptyState, Button, Checkbox, SegmentedControl, Spinner, Select, Pagination, Icon, Card, Badge, ProgressBar, Tag, Toast, Textarea, Tabs, Table, Switch, StatCard, Input, IconButton, Field, Alert, warnOnce, Dialog } from './chunk-
|
|
6
|
-
export { Alert, Avatar, Badge, Breadcrumb, Button, Card, Checkbox, Dialog, EmptyState, Field, Icon, IconButton, Input, Pagination, ProgressBar, Radio, SegmentedControl, Select, SidebarNav, Spinner, StatCard, Switch, Table, Tabs, Tag, Textarea, Toast, Tooltip } from './chunk-
|
|
1
|
+
import { DEV, HoistedStyle, isSafeNavigationTarget, useSduiAdapter, hostFetchOf, DateRangePicker, DatePicker, useSduiSandbox, resolveAdapter, assetResolverOf, SduiAdapterContext } from './chunk-5A7BWIGN.js';
|
|
2
|
+
export { DatePicker, DateRangePicker, defaultAdapter, useSduiAssetResolver, useSduiSandbox } from './chunk-5A7BWIGN.js';
|
|
3
|
+
import { searchValuesFromParams, splitMultiValue, includesLooseSearch, cascadingValuePaths, SearchToolbar, searchFieldKeys, Popover } from './chunk-NIRR6KSQ.js';
|
|
4
|
+
export { SearchToolbar, cascadingValuePaths, cleanSearchValues, includesLooseSearch, joinMultiValue, normalizeSearchText, searchFieldKeys, searchValuesFromParams, splitMultiValue } from './chunk-NIRR6KSQ.js';
|
|
5
|
+
import { EmptyState, Button, Checkbox, SegmentedControl, Spinner, Select, Pagination, Icon, Card, Badge, ProgressBar, Tag, Toast, Textarea, Tabs, Table, Switch, StatCard, Input, IconButton, Field, Alert, warnOnce, Dialog } from './chunk-B5JTXYDB.js';
|
|
6
|
+
export { Alert, Avatar, Badge, Breadcrumb, Button, Card, Checkbox, Dialog, EmptyState, Field, Icon, IconButton, Input, Pagination, ProgressBar, Radio, SegmentedControl, Select, SidebarNav, Spinner, StatCard, Switch, Table, Tabs, Tag, Textarea, Toast, Tooltip } from './chunk-B5JTXYDB.js';
|
|
7
7
|
import { boxed, mergeStyle, containerLayoutStyle, joinClass, columnsClass, typographyStyle, LAYOUT_CSS, childLayoutFrom, CHILD_LAYOUT_PROPS } from './chunk-SAN4IX6N.js';
|
|
8
8
|
export { CHILD_LAYOUT_PROPS, LAYOUT_CSS, boxed, childLayoutFrom, columnsClass, containerLayoutStyle, joinClass, mergeStyle, typographyStyle } from './chunk-SAN4IX6N.js';
|
|
9
9
|
import React, { createContext, useState, useMemo, useContext, useRef, useEffect, useCallback } from 'react';
|
|
@@ -1766,6 +1766,7 @@ function validateSpec(page, knownComponents) {
|
|
|
1766
1766
|
const issues = [];
|
|
1767
1767
|
if (!isPlainObject(page)) return [{ path: "$", message: "\uC2A4\uD399\uC774 \uAC1D\uCCB4\uAC00 \uC544\uB2D9\uB2C8\uB2E4" }];
|
|
1768
1768
|
if (page.version !== 1) issues.push({ path: "$.version", message: "version\uC740 1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" });
|
|
1769
|
+
validatePageData(page.data, issues);
|
|
1769
1770
|
if (!Array.isArray(page.body)) {
|
|
1770
1771
|
issues.push({ path: "$.body", message: "body\uB294 \uBC30\uC5F4\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4" });
|
|
1771
1772
|
return issues;
|
|
@@ -1775,6 +1776,48 @@ function validateSpec(page, knownComponents) {
|
|
|
1775
1776
|
);
|
|
1776
1777
|
return issues;
|
|
1777
1778
|
}
|
|
1779
|
+
function validatePageData(data, issues) {
|
|
1780
|
+
if (data === void 0) return;
|
|
1781
|
+
if (!isPlainObject(data)) {
|
|
1782
|
+
issues.push({ path: "$.data", message: "data\uB294 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4" });
|
|
1783
|
+
return;
|
|
1784
|
+
}
|
|
1785
|
+
for (const [key, raw] of Object.entries(data)) {
|
|
1786
|
+
const path = `$.data.${key}`;
|
|
1787
|
+
if (key === "" || key.startsWith("$")) {
|
|
1788
|
+
issues.push({ path, message: "\uC0C1\uD0DC \uD0A4\uB294 \uBE44\uC5B4 \uC788\uC9C0 \uC54A\uC544\uC57C \uD558\uACE0 $\uB85C \uC2DC\uC791\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4" });
|
|
1789
|
+
continue;
|
|
1790
|
+
}
|
|
1791
|
+
if (!isPlainObject(raw)) {
|
|
1792
|
+
issues.push({ path, message: "\uC870\uD68C\uB294 { endpoint, select?, when?, fallback? } \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4" });
|
|
1793
|
+
continue;
|
|
1794
|
+
}
|
|
1795
|
+
if (raw.endpoint === void 0) {
|
|
1796
|
+
issues.push({ path: `${path}.endpoint`, message: "endpoint\uB294 \uD544\uC218\uC785\uB2C8\uB2E4" });
|
|
1797
|
+
} else if (typeof raw.endpoint === "string") {
|
|
1798
|
+
if (isDangerousUrlValue(raw.endpoint)) {
|
|
1799
|
+
issues.push({ path: `${path}.endpoint`, message: `\uD5C8\uC6A9\uB418\uC9C0 \uC54A\uB294 \uACBD\uB85C: ${raw.endpoint}` });
|
|
1800
|
+
} else if (!raw.endpoint.startsWith("/")) {
|
|
1801
|
+
issues.push({ path: `${path}.endpoint`, message: "endpoint\uB294 /\uB85C \uC2DC\uC791\uD558\uB294 \uACBD\uB85C\uC5EC\uC57C \uD569\uB2C8\uB2E4" });
|
|
1802
|
+
}
|
|
1803
|
+
} else if (!isPlainObject(raw.endpoint)) {
|
|
1804
|
+
issues.push({ path: `${path}.endpoint`, message: "endpoint\uB294 \uBB38\uC790\uC5F4\uC774\uAC70\uB098 \uAC12 \uCC38\uC870\uC5EC\uC57C \uD569\uB2C8\uB2E4" });
|
|
1805
|
+
} else {
|
|
1806
|
+
walkValue(raw.endpoint, `${path}.endpoint`, issues, false);
|
|
1807
|
+
}
|
|
1808
|
+
if (raw.select !== void 0 && typeof raw.select !== "string") {
|
|
1809
|
+
issues.push({ path: `${path}.select`, message: "select\uB294 \uBB38\uC790\uC5F4 \uACBD\uB85C\uC5EC\uC57C \uD569\uB2C8\uB2E4" });
|
|
1810
|
+
}
|
|
1811
|
+
for (const [k, v] of Object.entries(raw)) {
|
|
1812
|
+
if (k === "endpoint" || k === "select") continue;
|
|
1813
|
+
if (k !== "when" && k !== "fallback") {
|
|
1814
|
+
issues.push({ path: `${path}.${k}`, message: `\uC54C \uC218 \uC5C6\uB294 \uD56D\uBAA9: ${k}` });
|
|
1815
|
+
continue;
|
|
1816
|
+
}
|
|
1817
|
+
walkValue(v, `${path}.${k}`, issues, false);
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1778
1821
|
function walkChild(child, path, issues, known) {
|
|
1779
1822
|
if (typeof child === "string") return;
|
|
1780
1823
|
if (!isPlainObject(child)) {
|
|
@@ -1892,29 +1935,84 @@ function walkValue(value, path, issues, actionEligible) {
|
|
|
1892
1935
|
walkValue(v, `${path}.${k}`, issues, k === "run" || k === "rowClick" || k.startsWith("on"));
|
|
1893
1936
|
}
|
|
1894
1937
|
}
|
|
1895
|
-
|
|
1938
|
+
|
|
1939
|
+
// src/page-data.ts
|
|
1940
|
+
function isPlainObject2(value) {
|
|
1941
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1942
|
+
}
|
|
1943
|
+
function planPageData(data, resolve) {
|
|
1944
|
+
if (data === void 0) return [];
|
|
1945
|
+
if (!isPlainObject2(data)) {
|
|
1946
|
+
warnOnce("page-data:root", "[sdui] page.data\uB294 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4 \u2014 \uBB34\uC2DC\uD569\uB2C8\uB2E4");
|
|
1947
|
+
return [];
|
|
1948
|
+
}
|
|
1949
|
+
const plans = [];
|
|
1950
|
+
for (const [key, raw] of Object.entries(data)) {
|
|
1951
|
+
if (key === "" || key.startsWith("$")) {
|
|
1952
|
+
warnOnce(`page-data:${key}`, `[sdui] page.data\uC758 \uC0C1\uD0DC \uD0A4 "${key}"\uB294 \uC4F8 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uAC74\uB108\uB701\uB2C8\uB2E4`);
|
|
1953
|
+
continue;
|
|
1954
|
+
}
|
|
1955
|
+
if (!isPlainObject2(raw)) {
|
|
1956
|
+
warnOnce(`page-data:${key}`, `[sdui] page.data.${key}\uB294 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4 \u2014 \uAC74\uB108\uB701\uB2C8\uB2E4`);
|
|
1957
|
+
continue;
|
|
1958
|
+
}
|
|
1959
|
+
const query = raw;
|
|
1960
|
+
const resolved = resolve(query.endpoint);
|
|
1961
|
+
const endpoint = typeof resolved === "string" ? resolved.trim() : "";
|
|
1962
|
+
const enabled = "when" in query ? Boolean(resolve(query.when)) : true;
|
|
1963
|
+
plans.push({
|
|
1964
|
+
key,
|
|
1965
|
+
endpoint,
|
|
1966
|
+
enabled,
|
|
1967
|
+
select: typeof query.select === "string" ? query.select : void 0,
|
|
1968
|
+
fallback: query.fallback
|
|
1969
|
+
});
|
|
1970
|
+
}
|
|
1971
|
+
return plans;
|
|
1972
|
+
}
|
|
1973
|
+
function planSignature(plans) {
|
|
1974
|
+
return JSON.stringify(plans.map((plan) => [plan.key, plan.enabled ? plan.endpoint : ""]));
|
|
1975
|
+
}
|
|
1976
|
+
function runnablePlans(plans) {
|
|
1977
|
+
return plans.filter((plan) => plan.enabled && plan.endpoint !== "");
|
|
1978
|
+
}
|
|
1979
|
+
function invalidateHits(plans, prefix, exact) {
|
|
1980
|
+
return plans.filter(
|
|
1981
|
+
(plan) => prefix === "" ? true : exact ? plan.endpoint === prefix : plan.endpoint.startsWith(prefix)
|
|
1982
|
+
).map((plan) => plan.key);
|
|
1983
|
+
}
|
|
1984
|
+
function pickPath(source, path) {
|
|
1985
|
+
if (path === void 0 || path === "") return source;
|
|
1986
|
+
let value = source;
|
|
1987
|
+
for (const segment of path.split(".")) {
|
|
1988
|
+
if (!isPlainObject2(value)) return void 0;
|
|
1989
|
+
value = value[segment];
|
|
1990
|
+
}
|
|
1991
|
+
return value;
|
|
1992
|
+
}
|
|
1993
|
+
function isPlainObject3(v) {
|
|
1896
1994
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
1897
1995
|
}
|
|
1898
1996
|
function isStateRef(v) {
|
|
1899
|
-
return
|
|
1997
|
+
return isPlainObject3(v) && typeof v.$state === "string";
|
|
1900
1998
|
}
|
|
1901
1999
|
function isItemRef(v) {
|
|
1902
|
-
return
|
|
2000
|
+
return isPlainObject3(v) && "$item" in v;
|
|
1903
2001
|
}
|
|
1904
2002
|
function isIndexRef(v) {
|
|
1905
|
-
return
|
|
2003
|
+
return isPlainObject3(v) && "$index" in v;
|
|
1906
2004
|
}
|
|
1907
2005
|
function isCalcRef(v) {
|
|
1908
|
-
return
|
|
2006
|
+
return isPlainObject3(v) && isPlainObject3(v.$calc);
|
|
1909
2007
|
}
|
|
1910
2008
|
function isAction(v) {
|
|
1911
|
-
return
|
|
2009
|
+
return isPlainObject3(v) && typeof v.action === "string";
|
|
1912
2010
|
}
|
|
1913
2011
|
function isActionList(v) {
|
|
1914
2012
|
return Array.isArray(v) && v.length > 0 && v.every(isAction);
|
|
1915
2013
|
}
|
|
1916
2014
|
function eventValue(arg) {
|
|
1917
|
-
if (
|
|
2015
|
+
if (isPlainObject3(arg) && "target" in arg && typeof arg.preventDefault === "function") {
|
|
1918
2016
|
const target = arg.target;
|
|
1919
2017
|
if (target.type === "checkbox") return target.checked;
|
|
1920
2018
|
if (target.type === "number" || target.type === "range") {
|
|
@@ -2032,7 +2130,7 @@ function childrenOf(node) {
|
|
|
2032
2130
|
}
|
|
2033
2131
|
function renderChild(child, index, scope, engine) {
|
|
2034
2132
|
if (typeof child === "string") return child;
|
|
2035
|
-
if (!
|
|
2133
|
+
if (!isPlainObject3(child)) {
|
|
2036
2134
|
warnOnce2(`child:${String(child)}`, `[sdui] \uC798\uBABB\uB41C \uB178\uB4DC(\uBB38\uC790\uC5F4 \uB610\uB294 \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4): ${String(child)}`);
|
|
2037
2135
|
return /* @__PURE__ */ jsx(SpecErrorCard, { children: "[sdui] \uC798\uBABB\uB41C \uB178\uB4DC \u2014 \uBB38\uC790\uC5F4 \uB610\uB294 \uB178\uB4DC \uAC1D\uCCB4\uC5EC\uC57C \uD569\uB2C8\uB2E4" }, index);
|
|
2038
2136
|
}
|
|
@@ -2047,11 +2145,11 @@ function SduiNodeRenderer({
|
|
|
2047
2145
|
engine
|
|
2048
2146
|
}) {
|
|
2049
2147
|
const { registry, resolveValue, dispatch, resolveAsset } = engine;
|
|
2050
|
-
const slots =
|
|
2148
|
+
const slots = isPlainObject3(node.slots) ? node.slots : void 0;
|
|
2051
2149
|
const childList = childrenOf(node);
|
|
2052
2150
|
if (node.component === "ForEach") {
|
|
2053
2151
|
const source = resolveValue(
|
|
2054
|
-
|
|
2152
|
+
isPlainObject3(node.props) ? node.props.source ?? null : null,
|
|
2055
2153
|
scope
|
|
2056
2154
|
);
|
|
2057
2155
|
const rows = Array.isArray(source) ? source : [];
|
|
@@ -2061,7 +2159,7 @@ function SduiNodeRenderer({
|
|
|
2061
2159
|
}
|
|
2062
2160
|
return /* @__PURE__ */ jsx(Fragment, { children: rows.map((item, rowIndex) => {
|
|
2063
2161
|
const rowScope = [...scope, { item, index: rowIndex }];
|
|
2064
|
-
const rowKey =
|
|
2162
|
+
const rowKey = isPlainObject3(item) && typeof item.id === "string" ? item.id : rowIndex;
|
|
2065
2163
|
return /* @__PURE__ */ jsx(React.Fragment, { children: childList?.map((child, i) => renderChild(child, i, rowScope, engine)) }, rowKey);
|
|
2066
2164
|
}) });
|
|
2067
2165
|
}
|
|
@@ -2077,7 +2175,7 @@ function SduiNodeRenderer({
|
|
|
2077
2175
|
] });
|
|
2078
2176
|
}
|
|
2079
2177
|
const props = {};
|
|
2080
|
-
for (const [name, raw] of Object.entries(
|
|
2178
|
+
for (const [name, raw] of Object.entries(isPlainObject3(node.props) ? node.props : {})) {
|
|
2081
2179
|
if (DENIED_PROPS2.has(name)) {
|
|
2082
2180
|
warnOnce2(`prop:${name}`, `[sdui] \uC2A4\uD399\uC5D0\uC11C \uD5C8\uC6A9\uB418\uC9C0 \uC54A\uB294 \uD504\uB86D: ${name} \u2014 \uBB34\uC2DC\uD569\uB2C8\uB2E4`);
|
|
2083
2181
|
continue;
|
|
@@ -2109,7 +2207,7 @@ function SduiNodeRenderer({
|
|
|
2109
2207
|
if (childLayout) {
|
|
2110
2208
|
for (const name of CHILD_LAYOUT_PROPS) delete props[name];
|
|
2111
2209
|
if (childLayout.style) {
|
|
2112
|
-
props.style =
|
|
2210
|
+
props.style = isPlainObject3(props.style) ? { ...childLayout.style, ...props.style } : childLayout.style;
|
|
2113
2211
|
}
|
|
2114
2212
|
if (childLayout.className) {
|
|
2115
2213
|
props.className = typeof props.className === "string" && props.className ? `${childLayout.className} ${props.className}` : childLayout.className;
|
|
@@ -2244,7 +2342,7 @@ function SduiRenderer({
|
|
|
2244
2342
|
if (head in current) {
|
|
2245
2343
|
let value = current[head];
|
|
2246
2344
|
for (const segment of segments.slice(cut)) {
|
|
2247
|
-
if (!
|
|
2345
|
+
if (!isPlainObject3(value)) return void 0;
|
|
2248
2346
|
value = value[segment];
|
|
2249
2347
|
}
|
|
2250
2348
|
return value;
|
|
@@ -2262,7 +2360,7 @@ function SduiRenderer({
|
|
|
2262
2360
|
const frame = scope[scope.length - 1];
|
|
2263
2361
|
if (!frame) return null;
|
|
2264
2362
|
if (value.$item === true) return frame.item;
|
|
2265
|
-
return
|
|
2363
|
+
return isPlainObject3(frame.item) ? frame.item[value.$item] ?? null : null;
|
|
2266
2364
|
}
|
|
2267
2365
|
if (isIndexRef(value)) {
|
|
2268
2366
|
return scope[scope.length - 1]?.index ?? null;
|
|
@@ -2278,7 +2376,7 @@ function SduiRenderer({
|
|
|
2278
2376
|
const resolved = args.map((arg) => resolveValue(arg, scope));
|
|
2279
2377
|
const nums = (v) => {
|
|
2280
2378
|
if (Array.isArray(v))
|
|
2281
|
-
return v.map((row) => field &&
|
|
2379
|
+
return v.map((row) => field && isPlainObject3(row) ? toNumber2(row[field]) : toNumber2(row));
|
|
2282
2380
|
return [toNumber2(v)];
|
|
2283
2381
|
};
|
|
2284
2382
|
switch (op) {
|
|
@@ -2325,7 +2423,7 @@ function SduiRenderer({
|
|
|
2325
2423
|
}
|
|
2326
2424
|
}
|
|
2327
2425
|
if (Array.isArray(value)) return value.map((v) => resolveValue(v, scope));
|
|
2328
|
-
if (
|
|
2426
|
+
if (isPlainObject3(value)) {
|
|
2329
2427
|
const out = {};
|
|
2330
2428
|
for (const [k, v] of Object.entries(value)) out[k] = resolveValue(v, scope);
|
|
2331
2429
|
return out;
|
|
@@ -2334,6 +2432,70 @@ function SduiRenderer({
|
|
|
2334
2432
|
},
|
|
2335
2433
|
[lookupState]
|
|
2336
2434
|
);
|
|
2435
|
+
const dataPlan = useMemo(
|
|
2436
|
+
() => planPageData(page.data, (value) => resolveValue(value, EMPTY_SCOPE)),
|
|
2437
|
+
// state를 의존성에 두어야 $state를 참조하는 경로가 값 변화를 따라간다.
|
|
2438
|
+
[page.data, resolveValue, state]
|
|
2439
|
+
);
|
|
2440
|
+
const dataPlanRef = useRef(dataPlan);
|
|
2441
|
+
dataPlanRef.current = dataPlan;
|
|
2442
|
+
const dataPlanKey = useMemo(() => planSignature(dataPlan), [dataPlan]);
|
|
2443
|
+
const [dataEpochs, setDataEpochs] = useState({});
|
|
2444
|
+
const dataEpochsRef = useRef(dataEpochs);
|
|
2445
|
+
dataEpochsRef.current = dataEpochs;
|
|
2446
|
+
const fetchedRef = useRef(/* @__PURE__ */ new Map());
|
|
2447
|
+
const dataEpochKey = useMemo(() => JSON.stringify(dataEpochs), [dataEpochs]);
|
|
2448
|
+
useEffect(() => {
|
|
2449
|
+
const epochs = dataEpochsRef.current;
|
|
2450
|
+
const runnable = runnablePlans(dataPlanRef.current).filter((plan) => {
|
|
2451
|
+
const stamp = `${plan.endpoint}#${epochs[plan.key] ?? 0}`;
|
|
2452
|
+
if (fetchedRef.current.get(plan.key) === stamp) return false;
|
|
2453
|
+
fetchedRef.current.set(plan.key, stamp);
|
|
2454
|
+
return true;
|
|
2455
|
+
});
|
|
2456
|
+
if (runnable.length === 0) return;
|
|
2457
|
+
const controller = new AbortController();
|
|
2458
|
+
let cancelled = false;
|
|
2459
|
+
setEntries(
|
|
2460
|
+
Object.fromEntries(runnable.map((plan) => [`${plan.key}.$loading`, true]))
|
|
2461
|
+
);
|
|
2462
|
+
void Promise.all(
|
|
2463
|
+
runnable.map(async (plan) => {
|
|
2464
|
+
try {
|
|
2465
|
+
const response = await hostRef.current.fetch(plan.endpoint, {
|
|
2466
|
+
method: "GET",
|
|
2467
|
+
signal: controller.signal
|
|
2468
|
+
});
|
|
2469
|
+
if (cancelled) return;
|
|
2470
|
+
const picked = pickPath(response, plan.select);
|
|
2471
|
+
if (picked === void 0 && plan.select !== void 0) {
|
|
2472
|
+
warnOnce2(
|
|
2473
|
+
`data-select:${plan.key}`,
|
|
2474
|
+
`[sdui] page.data.${plan.key}: \uC751\uB2F5\uC5D0 "${plan.select}" \uACBD\uB85C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4 \u2014 \uAC12 \uC5C6\uC74C\uC73C\uB85C \uB461\uB2C8\uB2E4 (${plan.endpoint})`
|
|
2475
|
+
);
|
|
2476
|
+
}
|
|
2477
|
+
setEntries({
|
|
2478
|
+
[plan.key]: picked,
|
|
2479
|
+
[`${plan.key}.$loading`]: false,
|
|
2480
|
+
[`${plan.key}.$error`]: null
|
|
2481
|
+
});
|
|
2482
|
+
} catch (error) {
|
|
2483
|
+
if (cancelled || controller.signal.aborted) return;
|
|
2484
|
+
const message = error instanceof Error ? error.message : "\uC870\uD68C\uC5D0 \uC2E4\uD328\uD588\uC2B5\uB2C8\uB2E4";
|
|
2485
|
+
warnOnce2(`data:${plan.key}:${plan.endpoint}`, `[sdui] page.data.${plan.key} \uC870\uD68C \uC2E4\uD328 (${plan.endpoint}): ${message}`);
|
|
2486
|
+
setEntries({
|
|
2487
|
+
[plan.key]: plan.fallback ?? void 0,
|
|
2488
|
+
[`${plan.key}.$loading`]: false,
|
|
2489
|
+
[`${plan.key}.$error`]: message
|
|
2490
|
+
});
|
|
2491
|
+
}
|
|
2492
|
+
})
|
|
2493
|
+
);
|
|
2494
|
+
return () => {
|
|
2495
|
+
cancelled = true;
|
|
2496
|
+
controller.abort();
|
|
2497
|
+
};
|
|
2498
|
+
}, [dataPlanKey, dataEpochKey, setEntries]);
|
|
2337
2499
|
const dispatchRef = useRef(() => {
|
|
2338
2500
|
});
|
|
2339
2501
|
const dispatch = useCallback(
|
|
@@ -2407,7 +2569,7 @@ function SduiRenderer({
|
|
|
2407
2569
|
break;
|
|
2408
2570
|
}
|
|
2409
2571
|
const row = current[index];
|
|
2410
|
-
if (!
|
|
2572
|
+
if (!isPlainObject3(row)) break;
|
|
2411
2573
|
const nextValue = (action.fromEvent ? eventValue(arg) : action.value) ?? null;
|
|
2412
2574
|
const next = [...current];
|
|
2413
2575
|
next[index] = { ...row, [action.field]: nextValue };
|
|
@@ -2456,9 +2618,19 @@ function SduiRenderer({
|
|
|
2456
2618
|
})();
|
|
2457
2619
|
break;
|
|
2458
2620
|
}
|
|
2459
|
-
case "invalidate":
|
|
2621
|
+
case "invalidate": {
|
|
2460
2622
|
hostRef.current.invalidate?.(action.prefix, action.exact ?? false);
|
|
2623
|
+
const prefix = typeof action.prefix === "string" ? action.prefix : "";
|
|
2624
|
+
const hit = invalidateHits(runnablePlans(dataPlanRef.current), prefix, action.exact ?? false);
|
|
2625
|
+
if (hit.length > 0) {
|
|
2626
|
+
setDataEpochs((prev) => {
|
|
2627
|
+
const next = { ...prev };
|
|
2628
|
+
for (const key of hit) next[key] = (next[key] ?? 0) + 1;
|
|
2629
|
+
return next;
|
|
2630
|
+
});
|
|
2631
|
+
}
|
|
2461
2632
|
break;
|
|
2633
|
+
}
|
|
2462
2634
|
case "refresh":
|
|
2463
2635
|
hostRef.current.refresh?.();
|
|
2464
2636
|
break;
|
package/dist/meta.d.ts
CHANGED
package/dist/rich.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useSduiAssetResolver, HoistedStyle } from './chunk-
|
|
2
|
-
export { DatePicker, DateRangePicker } from './chunk-
|
|
3
|
-
import { Spinner, EmptyState } from './chunk-
|
|
1
|
+
import { useSduiAssetResolver, HoistedStyle } from './chunk-5A7BWIGN.js';
|
|
2
|
+
export { DatePicker, DateRangePicker } from './chunk-5A7BWIGN.js';
|
|
3
|
+
import { Spinner, EmptyState } from './chunk-B5JTXYDB.js';
|
|
4
4
|
import './chunk-SAN4IX6N.js';
|
|
5
5
|
import { useRef, useCallback, useMemo, useState, useEffect, useLayoutEffect } from 'react';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -182,6 +182,41 @@ type SduiAction = {
|
|
|
182
182
|
name: string;
|
|
183
183
|
payload?: SduiPropValue;
|
|
184
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* 페이지가 열릴 때 서버에서 끌어와 상태에 넣을 조회 하나.
|
|
187
|
+
*
|
|
188
|
+
* ## 왜 이게 생겼나 (실측)
|
|
189
|
+
* 이것이 생기기 전, 스펙에는 **서버 데이터를 상태로 들여오는 통로가 없었다.**
|
|
190
|
+
* 마운트 훅이 없고, `submitForm`은 GET에도 본문을 붙여(어댑터가 `JSON.stringify`한다)
|
|
191
|
+
* 브라우저가 막는다. 그래서 데이터는 **스스로 조회하는 컴포넌트**로만 들어왔다 —
|
|
192
|
+
* ERP 85화면 실측에서 그런 자리는 `RemoteSearchResults +endpoint` 43곳,
|
|
193
|
+
* `AutocompleteField +endpoint` 1곳, 합쳐 44곳이 전부였다.
|
|
194
|
+
* 그 결과 `Chart`는 20번 쓰여 **20번 모두** 리터럴 샘플이었고, 데이터를 지는 자리
|
|
195
|
+
* 854곳 중 387곳이 샘플로 남아 있었다. 화면마다 배선을 빠뜨린 것이 아니라
|
|
196
|
+
* **배선할 수단이 없었던 것**이다.
|
|
197
|
+
*/
|
|
198
|
+
interface SduiPageQuery {
|
|
199
|
+
/**
|
|
200
|
+
* GET 경로. 값 해석을 거치므로 `$state`·`$calc`를 쓸 수 있다 —
|
|
201
|
+
* 선택된 행에 딸린 조회는
|
|
202
|
+
* `{"$calc":{"op":"concat","args":["/roles/",{"$state":"rt.id"},"/permissions"]}}`처럼 쓴다.
|
|
203
|
+
* 해석된 경로가 바뀌면 자동으로 다시 조회한다.
|
|
204
|
+
*/
|
|
205
|
+
endpoint: SduiPropValue;
|
|
206
|
+
/**
|
|
207
|
+
* 응답에서 꺼낼 필드 경로(`"data"`, `"result.rows"`). 생략하면 응답 전체.
|
|
208
|
+
* 목록 API가 `{data, total, limit, offset}` 봉투를 주므로 대개 `"data"`가 된다.
|
|
209
|
+
*/
|
|
210
|
+
select?: string;
|
|
211
|
+
/**
|
|
212
|
+
* 이 값이 거짓이면 조회하지 않는다. 선택된 행이 없을 때
|
|
213
|
+
* `/roles/undefined/permissions`를 때리는 것을 막는 자리다.
|
|
214
|
+
* 생략하면 해석된 경로가 비어 있지 않은 문자열일 때 조회한다.
|
|
215
|
+
*/
|
|
216
|
+
when?: SduiPropValue;
|
|
217
|
+
/** 실패했거나 아직 조회 전일 때 상태에 들어갈 값. 생략하면 `undefined`. */
|
|
218
|
+
fallback?: SduiPropValue;
|
|
219
|
+
}
|
|
185
220
|
interface SduiPage {
|
|
186
221
|
version: 1;
|
|
187
222
|
/** 문서 <title> 및 페이지 헤더에 쓰인다. */
|
|
@@ -191,7 +226,19 @@ interface SduiPage {
|
|
|
191
226
|
subscribe?: string[];
|
|
192
227
|
/** URL 쿼리파라미터와 동기화할 상태 키 — 딥링크/새로고침 보존용 */
|
|
193
228
|
urlState?: string[];
|
|
229
|
+
/**
|
|
230
|
+
* 페이지가 열릴 때 채울 상태 — `{ "상태키": { endpoint, select? } }`.
|
|
231
|
+
*
|
|
232
|
+
* 각 조회는 자기 키 옆에 진행·실패를 **평평한 키**로 함께 적는다:
|
|
233
|
+
* `"<키>.$loading"`(boolean) · `"<키>.$error"`(문자열 또는 null).
|
|
234
|
+
* 상태 조회가 완전 일치를 먼저 보므로 `{"$state":"rt.x.$loading"}`은 그 평평한 키를
|
|
235
|
+
* 집고 `{"$state":"rt.x"}`는 데이터를 집는다 — 서로 가리지 않는다.
|
|
236
|
+
*
|
|
237
|
+
* `invalidate` 액션의 prefix와 경로가 겹치면 다시 조회한다. 저장 후
|
|
238
|
+
* `{"action":"invalidate","prefix":"/roles"}` 하나로 목록이 갱신되는 이유다.
|
|
239
|
+
*/
|
|
240
|
+
data?: Record<string, SduiPageQuery>;
|
|
194
241
|
body: SduiChild[];
|
|
195
242
|
}
|
|
196
243
|
|
|
197
|
-
export type { SduiAction as S, SduiPropValue as a, SduiRule as b, SduiPage as c, SduiCalcRef as d, SduiChild as e, SduiIndexRef as f, SduiItemRef as g, SduiNode as h,
|
|
244
|
+
export type { SduiAction as S, SduiPropValue as a, SduiRule as b, SduiPage as c, SduiCalcRef as d, SduiChild as e, SduiIndexRef as f, SduiItemRef as g, SduiNode as h, SduiPageQuery as i, SduiScalar as j, SduiStateRef as k };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { AutocompleteField, toAutocompleteOptions } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { AutocompleteField, toAutocompleteOptions } from '../chunk-TBAIREB3.js';
|
|
2
|
+
import '../chunk-NIRR6KSQ.js';
|
|
3
|
+
import '../chunk-B5JTXYDB.js';
|
|
4
4
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ColumnBoard } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ColumnBoard } from '../chunk-VK6KWB65.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/DiffView.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { DiffView } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { DiffView } from '../chunk-4IRLQWQC.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { Disclosure } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { Disclosure } from '../chunk-WLWWN5LW.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { EventCalendar } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { EventCalendar } from '../chunk-WMPSOKNI.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { ImageLightbox } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { ImageLightbox } from '../chunk-3PYMVHL3.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { InlineEdit } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { InlineEdit } from '../chunk-7AHNAX6T.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { JsonField } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { JsonField } from '../chunk-JONNWN6N.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/OrgChart.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { OrgChart } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { OrgChart } from '../chunk-BT4HC3WR.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { PeriodFilter } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { PeriodFilter } from '../chunk-WJEGCCPY.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { PrintSheet } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { PrintSheet } from '../chunk-JWYBFODH.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SearchableMultiPicker } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { SearchableMultiPicker } from '../chunk-OINKP2BE.js';
|
|
2
|
+
import '../chunk-NIRR6KSQ.js';
|
|
3
|
+
import '../chunk-B5JTXYDB.js';
|
|
4
4
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { SecureScreen } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { SecureScreen } from '../chunk-4CZJF5PR.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { TagMultiSelect } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { TagMultiSelect } from '../chunk-TMAVD3WL.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/Timeline.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Timeline } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { Timeline } from '../chunk-YFUQUWWH.js';
|
|
2
|
+
import '../chunk-WLWWN5LW.js';
|
|
3
|
+
import '../chunk-B5JTXYDB.js';
|
|
4
4
|
import '../chunk-SAN4IX6N.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { TreePicker } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { TreePicker } from '../chunk-VV73LOAE.js';
|
|
2
|
+
import '../chunk-X3DGYP4W.js';
|
|
3
|
+
import '../chunk-B5JTXYDB.js';
|
|
4
4
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/TreeView.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { TreeView } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { TreeView } from '../chunk-X3DGYP4W.js';
|
|
2
|
+
import '../chunk-B5JTXYDB.js';
|
|
3
3
|
import '../chunk-SAN4IX6N.js';
|
package/dist/widgets/index.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { SearchableMultiPicker } from '../chunk-
|
|
2
|
-
export { SearchableMultiPicker } from '../chunk-
|
|
3
|
-
import { SecureScreen } from '../chunk-
|
|
4
|
-
export { SecureScreen } from '../chunk-
|
|
1
|
+
import { SearchableMultiPicker } from '../chunk-OINKP2BE.js';
|
|
2
|
+
export { SearchableMultiPicker } from '../chunk-OINKP2BE.js';
|
|
3
|
+
import { SecureScreen } from '../chunk-4CZJF5PR.js';
|
|
4
|
+
export { SecureScreen } from '../chunk-4CZJF5PR.js';
|
|
5
5
|
import { StackedMeter } from '../chunk-BMZKZGJF.js';
|
|
6
6
|
export { StackedMeter } from '../chunk-BMZKZGJF.js';
|
|
7
7
|
import { Strip } from '../chunk-ZH5MLOZS.js';
|
|
8
8
|
export { Strip } from '../chunk-ZH5MLOZS.js';
|
|
9
9
|
import { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
10
10
|
export { SummaryTable } from '../chunk-O4U7Y3XL.js';
|
|
11
|
-
import { TagMultiSelect } from '../chunk-
|
|
12
|
-
export { TagMultiSelect } from '../chunk-
|
|
13
|
-
import { Timeline } from '../chunk-
|
|
14
|
-
export { Timeline } from '../chunk-
|
|
15
|
-
import { TreePicker } from '../chunk-
|
|
16
|
-
export { TreePicker } from '../chunk-
|
|
17
|
-
import { TreeView } from '../chunk-
|
|
18
|
-
export { TreeView } from '../chunk-
|
|
19
|
-
import { EventCalendar } from '../chunk-
|
|
20
|
-
export { EventCalendar } from '../chunk-
|
|
21
|
-
import { ImageLightbox } from '../chunk-
|
|
22
|
-
export { ImageLightbox } from '../chunk-
|
|
23
|
-
import { InlineEdit } from '../chunk-
|
|
24
|
-
export { InlineEdit } from '../chunk-
|
|
25
|
-
import { JsonField } from '../chunk-
|
|
26
|
-
export { JsonField } from '../chunk-
|
|
11
|
+
import { TagMultiSelect } from '../chunk-TMAVD3WL.js';
|
|
12
|
+
export { TagMultiSelect } from '../chunk-TMAVD3WL.js';
|
|
13
|
+
import { Timeline } from '../chunk-YFUQUWWH.js';
|
|
14
|
+
export { Timeline } from '../chunk-YFUQUWWH.js';
|
|
15
|
+
import { TreePicker } from '../chunk-VV73LOAE.js';
|
|
16
|
+
export { TreePicker } from '../chunk-VV73LOAE.js';
|
|
17
|
+
import { TreeView } from '../chunk-X3DGYP4W.js';
|
|
18
|
+
export { TreeView } from '../chunk-X3DGYP4W.js';
|
|
19
|
+
import { EventCalendar } from '../chunk-WMPSOKNI.js';
|
|
20
|
+
export { EventCalendar } from '../chunk-WMPSOKNI.js';
|
|
21
|
+
import { ImageLightbox } from '../chunk-3PYMVHL3.js';
|
|
22
|
+
export { ImageLightbox } from '../chunk-3PYMVHL3.js';
|
|
23
|
+
import { InlineEdit } from '../chunk-7AHNAX6T.js';
|
|
24
|
+
export { InlineEdit } from '../chunk-7AHNAX6T.js';
|
|
25
|
+
import { JsonField } from '../chunk-JONNWN6N.js';
|
|
26
|
+
export { JsonField } from '../chunk-JONNWN6N.js';
|
|
27
27
|
import { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
28
28
|
export { LiveClock } from '../chunk-Z3WGIFJP.js';
|
|
29
|
-
import { OrgChart } from '../chunk-
|
|
30
|
-
export { OrgChart } from '../chunk-
|
|
31
|
-
import { PeriodFilter } from '../chunk-
|
|
32
|
-
export { PeriodFilter } from '../chunk-
|
|
33
|
-
import { PrintSheet } from '../chunk-
|
|
34
|
-
export { PrintSheet } from '../chunk-
|
|
35
|
-
export { AutocompleteField, toAutocompleteOptions } from '../chunk-
|
|
36
|
-
import '../chunk-
|
|
37
|
-
import { ColumnBoard } from '../chunk-
|
|
38
|
-
export { ColumnBoard } from '../chunk-
|
|
39
|
-
import { DiffView } from '../chunk-
|
|
40
|
-
export { DiffView } from '../chunk-
|
|
41
|
-
import { Disclosure } from '../chunk-
|
|
42
|
-
export { Disclosure } from '../chunk-
|
|
43
|
-
import '../chunk-
|
|
29
|
+
import { OrgChart } from '../chunk-BT4HC3WR.js';
|
|
30
|
+
export { OrgChart } from '../chunk-BT4HC3WR.js';
|
|
31
|
+
import { PeriodFilter } from '../chunk-WJEGCCPY.js';
|
|
32
|
+
export { PeriodFilter } from '../chunk-WJEGCCPY.js';
|
|
33
|
+
import { PrintSheet } from '../chunk-JWYBFODH.js';
|
|
34
|
+
export { PrintSheet } from '../chunk-JWYBFODH.js';
|
|
35
|
+
export { AutocompleteField, toAutocompleteOptions } from '../chunk-TBAIREB3.js';
|
|
36
|
+
import '../chunk-NIRR6KSQ.js';
|
|
37
|
+
import { ColumnBoard } from '../chunk-VK6KWB65.js';
|
|
38
|
+
export { ColumnBoard } from '../chunk-VK6KWB65.js';
|
|
39
|
+
import { DiffView } from '../chunk-4IRLQWQC.js';
|
|
40
|
+
export { DiffView } from '../chunk-4IRLQWQC.js';
|
|
41
|
+
import { Disclosure } from '../chunk-WLWWN5LW.js';
|
|
42
|
+
export { Disclosure } from '../chunk-WLWWN5LW.js';
|
|
43
|
+
import '../chunk-B5JTXYDB.js';
|
|
44
44
|
import '../chunk-SAN4IX6N.js';
|
|
45
45
|
|
|
46
46
|
// src/widgets/index.ts
|