xmlui 0.9.15 → 0.9.17

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.
@@ -12,7 +12,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _executor, _DeferredPromise_instances, decorate_fn, _a2;
13
13
  import { delay as delay$1, HttpResponse, http } from "msw";
14
14
  import { isArray, isObject as isObject$1, mapValues } from "lodash-es";
15
- import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./index-DFC3vDn-.mjs";
15
+ import { r as runEventHandlerCode, g as getDate, d as delay, m as miscellaneousUtils, a as dateFunctions, o as orderBy, T as ThrowStatementError } from "./index-B6kr6jsm.mjs";
16
16
  import Dexie from "dexie";
17
17
  var POSITIONALS_EXP = /(%?)(%([sdijo]))/g;
18
18
  function serializePositional(positional, flag) {
@@ -3394,21 +3394,23 @@ function createUrlWithQueryParams(to2) {
3394
3394
  }
3395
3395
  return to2;
3396
3396
  }
3397
- const themeVars$J = `'{"width-navPanel-App": "var(--xmlui-width-navPanel-App)", "boxShadow-header-App": "var(--xmlui-boxShadow-header-App)", "boxShadow-navPanel-App": "var(--xmlui-boxShadow-navPanel-App)", "backgroundColor-content-App": "var(--xmlui-backgroundColor-content-App)", "borderLeft-content-App": "var(--xmlui-borderLeft-content-App)", "maxWidth-content-App": "var(--xmlui-maxWidth-content-App)", "backgroundColor-AppHeader": "var(--xmlui-backgroundColor-AppHeader)", "borderBottom-AppHeader": "var(--xmlui-borderBottom-AppHeader)", "scroll-padding-block-Pages": "var(--xmlui-scroll-padding-block-Pages)"}'`;
3398
- const wrapper$g = "_wrapper_qcc08_13";
3399
- const vertical$4 = "_vertical_qcc08_23";
3400
- const contentWrapper$1 = "_contentWrapper_qcc08_27";
3401
- const navPanelWrapper = "_navPanelWrapper_qcc08_33";
3402
- const PagesWrapper = "_PagesWrapper_qcc08_37";
3403
- const footerWrapper = "_footerWrapper_qcc08_41";
3404
- const sticky = "_sticky_qcc08_44";
3405
- const horizontal$5 = "_horizontal_qcc08_51";
3406
- const verticalFullHeader = "_verticalFullHeader_qcc08_73";
3407
- const PagesWrapperInner = "_PagesWrapperInner_qcc08_90";
3408
- const scrollWholePage = "_scrollWholePage_qcc08_102";
3409
- const headerWrapper$1 = "_headerWrapper_qcc08_105";
3410
- const content$2 = "_content_qcc08_27";
3411
- const noScrollbarGutters = "_noScrollbarGutters_qcc08_147";
3397
+ const themeVars$J = `'{"width-navPanel-App": "var(--xmlui-width-navPanel-App)", "boxShadow-header-App": "var(--xmlui-boxShadow-header-App)", "boxShadow-navPanel-App": "var(--xmlui-boxShadow-navPanel-App)", "backgroundColor-content-App": "var(--xmlui-backgroundColor-content-App)", "borderLeft-content-App": "var(--xmlui-borderLeft-content-App)", "maxWidth-content-App": "var(--xmlui-maxWidth-content-App)", "maxWidth-App": "var(--xmlui-maxWidth-App)", "backgroundColor-AppHeader": "var(--xmlui-backgroundColor-AppHeader)", "borderBottom-AppHeader": "var(--xmlui-borderBottom-AppHeader)", "scroll-padding-block-Pages": "var(--xmlui-scroll-padding-block-Pages)"}'`;
3398
+ const wrapper$g = "_wrapper_1c9ty_13";
3399
+ const vertical$4 = "_vertical_1c9ty_23";
3400
+ const contentWrapper$1 = "_contentWrapper_1c9ty_27";
3401
+ const navPanelWrapper = "_navPanelWrapper_1c9ty_33";
3402
+ const PagesWrapper = "_PagesWrapper_1c9ty_37";
3403
+ const footerWrapper = "_footerWrapper_1c9ty_41";
3404
+ const sticky = "_sticky_1c9ty_44";
3405
+ const horizontal$5 = "_horizontal_1c9ty_51";
3406
+ const verticalFullHeader = "_verticalFullHeader_1c9ty_73";
3407
+ const PagesWrapperInner = "_PagesWrapperInner_1c9ty_90";
3408
+ const verticalConstrained = "_verticalConstrained_1c9ty_102";
3409
+ const header$2 = "_header_1c9ty_108";
3410
+ const scrollWholePage = "_scrollWholePage_1c9ty_135";
3411
+ const headerWrapper$1 = "_headerWrapper_1c9ty_138";
3412
+ const content$2 = "_content_1c9ty_27";
3413
+ const noScrollbarGutters = "_noScrollbarGutters_1c9ty_200";
3412
3414
  const styles$_ = {
3413
3415
  themeVars: themeVars$J,
3414
3416
  wrapper: wrapper$g,
@@ -3421,6 +3423,8 @@ const styles$_ = {
3421
3423
  horizontal: horizontal$5,
3422
3424
  verticalFullHeader,
3423
3425
  PagesWrapperInner,
3426
+ verticalConstrained,
3427
+ header: header$2,
3424
3428
  scrollWholePage,
3425
3429
  headerWrapper: headerWrapper$1,
3426
3430
  content: content$2,
@@ -4139,6 +4143,31 @@ function App({
4139
4143
  }
4140
4144
  );
4141
4145
  break;
4146
+ case "vertical-constrained-width":
4147
+ content2 = /* @__PURE__ */ jsxs(
4148
+ "div",
4149
+ {
4150
+ className: classnames(wrapperBaseClasses, styles$_.verticalConstrained),
4151
+ style: styleWithHelpers,
4152
+ ref: scrollPageContainerRef,
4153
+ children: [
4154
+ /* @__PURE__ */ jsx(
4155
+ "header",
4156
+ {
4157
+ className: classnames(styles$_.headerWrapper, styles$_.sticky),
4158
+ ref: headerRefCallback,
4159
+ children: /* @__PURE__ */ jsx("div", { className: styles$_.header, style: { paddingInline: 0 }, children: header2 })
4160
+ }
4161
+ ),
4162
+ /* @__PURE__ */ jsxs("div", { className: styles$_.content, children: [
4163
+ navPanelVisible && /* @__PURE__ */ jsx("aside", { className: styles$_.navPanelWrapper, children: navPanel }),
4164
+ /* @__PURE__ */ jsx("main", { className: styles$_.contentWrapper, children: /* @__PURE__ */ jsx("div", { className: styles$_.PagesWrapper, ref: noScrollPageContainerRef, children: /* @__PURE__ */ jsx(ScrollContext.Provider, { value: scrollContainerRef, children: /* @__PURE__ */ jsx("div", { className: styles$_.PagesWrapperInner, style: pagesWrapperInnerStyle, children }) }) }) })
4165
+ ] }),
4166
+ /* @__PURE__ */ jsx("div", { className: styles$_.footerWrapper, ref: footerRefCallback, children: footer })
4167
+ ]
4168
+ }
4169
+ );
4170
+ break;
4142
4171
  case "condensed":
4143
4172
  case "condensed-sticky":
4144
4173
  content2 = /* @__PURE__ */ jsxs(
@@ -4229,6 +4258,7 @@ function getAppLayoutOrientation(appLayout) {
4229
4258
  case "vertical":
4230
4259
  case "vertical-sticky":
4231
4260
  case "vertical-full-header":
4261
+ case "vertical-constrained-width":
4232
4262
  return "vertical";
4233
4263
  default:
4234
4264
  return "horizontal";
@@ -6988,6 +7018,12 @@ function resolveAndCleanProps(props, extractValue, layoutCss = {}, resourceExtra
6988
7018
  delete resultProps.radiusTopRight;
6989
7019
  delete resultProps.radiusBottomLeft;
6990
7020
  delete resultProps.radiusBottomRight;
7021
+ delete resultProps.paddingHorizontal;
7022
+ delete resultProps.paddingVertical;
7023
+ delete resultProps.marginHorizontal;
7024
+ delete resultProps.marginVertical;
7025
+ delete resultProps.borderHorizontal;
7026
+ delete resultProps.borderVertical;
6991
7027
  return result;
6992
7028
  }
6993
7029
  function removeStylesFromProps(nodeProps, layoutCss = {}) {
@@ -10389,7 +10425,7 @@ function resolveLayoutProps(layoutProps = EMPTY_OBJECT, layoutContext) {
10389
10425
  result.cssProps.flexShrink = 0;
10390
10426
  }
10391
10427
  collectCss("width");
10392
- const horizontalStarSize = getHorizontalStartSize(result.cssProps.width, layoutContext);
10428
+ const horizontalStarSize = getHorizontalStarSize(result.cssProps.width, layoutContext);
10393
10429
  if (horizontalStarSize !== null) {
10394
10430
  result.cssProps.flex = horizontalStarSize;
10395
10431
  result.cssProps.flexShrink = 1;
@@ -10397,7 +10433,7 @@ function resolveLayoutProps(layoutProps = EMPTY_OBJECT, layoutContext) {
10397
10433
  collectCss("minWidth");
10398
10434
  collectCss("maxWidth");
10399
10435
  collectCss("height");
10400
- const verticalStarSize = getVerticalStartSize(result.cssProps.height, layoutContext);
10436
+ const verticalStarSize = getVerticalStarSize(result.cssProps.height, layoutContext);
10401
10437
  if (verticalStarSize !== null) {
10402
10438
  result.cssProps.flex = verticalStarSize;
10403
10439
  result.cssProps.flexShrink = 1;
@@ -10581,12 +10617,12 @@ function resolveLayoutProps(layoutProps = EMPTY_OBJECT, layoutContext) {
10581
10617
  result.cssProps[propCssName || prop] = value;
10582
10618
  }
10583
10619
  }
10584
- function getHorizontalStartSize(size, layoutContext2) {
10620
+ function getHorizontalStarSize(size, layoutContext2) {
10585
10621
  if (!size) return null;
10586
10622
  const orientation = getOrientation(layoutContext2);
10587
10623
  return orientation === "horizontal" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
10588
10624
  }
10589
- function getVerticalStartSize(size, layoutContext2) {
10625
+ function getVerticalStarSize(size, layoutContext2) {
10590
10626
  if (!size) return null;
10591
10627
  const orientation = getOrientation(layoutContext2);
10592
10628
  return orientation === "vertical" && starSizeRegex.test(size.toString()) ? getStarSizeNumber(size.toString()) : null;
@@ -16158,7 +16194,7 @@ const ComboboxOption = forwardRef(function Combobox(option, forwardedRef) {
16158
16194
  },
16159
16195
  "data-state": selected2 ? "checked" : void 0,
16160
16196
  keywords,
16161
- children: /* @__PURE__ */ jsx("div", { className: styles$x.multiComboboxOptionContent, children: optionRenderer ? optionRenderer({ label: label2, value, enabled: enabled2, keywords }) : /* @__PURE__ */ jsxs(Fragment, { children: [
16197
+ children: /* @__PURE__ */ jsx("div", { className: styles$x.multiComboboxOptionContent, children: optionRenderer ? optionRenderer({ label: label2, value, enabled: enabled2, keywords }, selectedValue, false) : /* @__PURE__ */ jsxs(Fragment, { children: [
16162
16198
  optionLabelRenderer ? optionLabelRenderer({ label: label2, value }) : label2,
16163
16199
  selected2 && /* @__PURE__ */ jsx(Icon, { name: "checkmark" })
16164
16200
  ] }) })
@@ -16186,7 +16222,7 @@ const SelectOption = React__default.forwardRef(
16186
16222
  (option, ref) => {
16187
16223
  const { value, label: label2, enabled: enabled2 = true } = option;
16188
16224
  const { onOptionRemove, onOptionAdd } = useOption();
16189
- const { optionLabelRenderer, optionRenderer } = useSelect();
16225
+ const { optionLabelRenderer, optionRenderer, value: selectedValue, multiSelect } = useSelect();
16190
16226
  useLayoutEffect(() => {
16191
16227
  onOptionAdd(option);
16192
16228
  return () => onOptionRemove(option);
@@ -16195,7 +16231,7 @@ const SelectOption = React__default.forwardRef(
16195
16231
  label: label2,
16196
16232
  value,
16197
16233
  enabled: enabled2
16198
- }) : /* @__PURE__ */ jsxs(Fragment, { children: [
16234
+ }, selectedValue, false) : /* @__PURE__ */ jsxs(Fragment, { children: [
16199
16235
  /* @__PURE__ */ jsx(ItemText, { className: styles$x.selectItemContent, children: optionLabelRenderer ? optionLabelRenderer({ value, label: label2 }) : label2 }),
16200
16236
  /* @__PURE__ */ jsx("span", { className: styles$x.selectItemIndicator, children: /* @__PURE__ */ jsx(ItemIndicator, { children: /* @__PURE__ */ jsx(Icon, { name: "checkmark" }) }) })
16201
16237
  ] }) }) });
@@ -21566,12 +21602,16 @@ const selectComponentRenderer = createComponentRenderer(
21566
21602
  }
21567
21603
  );
21568
21604
  } : void 0,
21569
- optionRenderer: node.props.optionTemplate ? (item2) => {
21605
+ optionRenderer: node.props.optionTemplate ? (item2, val, inTrigger) => {
21570
21606
  return /* @__PURE__ */ jsx(
21571
21607
  MemoizedItem,
21572
21608
  {
21573
21609
  node: node.props.optionTemplate,
21574
21610
  item: item2,
21611
+ contextVars: {
21612
+ $selectedValue: val,
21613
+ $inTrigger: inTrigger
21614
+ },
21575
21615
  renderChild: (...args) => /* @__PURE__ */ jsx(SelectItemText, { children: renderChild2(...args) })
21576
21616
  }
21577
21617
  );
@@ -24062,7 +24102,8 @@ const styles$g = {
24062
24102
  const InspectorContext = createContext(null);
24063
24103
  function InspectorProvider({
24064
24104
  children,
24065
- sources
24105
+ sources,
24106
+ projectCompilation
24066
24107
  }) {
24067
24108
  const { root: root2 } = useTheme();
24068
24109
  const [inspectable, setInspectable] = useState({});
@@ -24112,9 +24153,10 @@ function InspectorProvider({
24112
24153
  setDevToolsSize,
24113
24154
  devToolsSide,
24114
24155
  setDevToolsSide,
24115
- devToolsEnabled: showCode
24156
+ devToolsEnabled: showCode,
24157
+ projectCompilation
24116
24158
  };
24117
- }, [devToolsSide, devToolsSize, sources, inspectedNode, showCode]);
24159
+ }, [devToolsSide, devToolsSize, sources, inspectedNode, showCode, projectCompilation]);
24118
24160
  return /* @__PURE__ */ jsxs(InspectorContext.Provider, { value: contextValue2, children: [
24119
24161
  children,
24120
24162
  process.env.VITE_USER_COMPONENTS_Inspect !== "false" && showCode && inspectedNode !== null && createPortal(devToolsEntry == null ? void 0 : devToolsEntry.renderer({}), root2),
@@ -24225,6 +24267,7 @@ function InspectButton({
24225
24267
  function useDevTools() {
24226
24268
  const context = useContext(InspectorContext);
24227
24269
  return {
24270
+ projectCompilation: context == null ? void 0 : context.projectCompilation,
24228
24271
  inspectedNode: context == null ? void 0 : context.inspectedNode,
24229
24272
  sources: context == null ? void 0 : context.sources,
24230
24273
  setIsOpen: context == null ? void 0 : context.setIsOpen,
@@ -25143,17 +25186,17 @@ function Loader({
25143
25186
  loaderInProgressChanged: loaderInProgressChanged2,
25144
25187
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25145
25188
  loaderError: loaderError2,
25146
- transformResult
25189
+ transformResult,
25190
+ structuralSharing = true
25147
25191
  }) {
25148
25192
  const { uid } = loader;
25149
25193
  const appContext = useAppContext();
25150
- const [isRefetching, setIsRefetching] = useState(false);
25151
- const { data, status, isFetching, error: error2, refetch } = useQuery({
25194
+ const { data, status, isFetching, error: error2, refetch, isRefetching } = useQuery({
25152
25195
  queryKey: useMemo(
25153
25196
  () => queryId ? queryId : [uid, extractParam(state, loader.props, appContext)],
25154
25197
  [appContext, loader.props, queryId, state, uid]
25155
25198
  ),
25156
- structuralSharing: false,
25199
+ structuralSharing,
25157
25200
  queryFn: useCallback(
25158
25201
  async ({ signal }) => {
25159
25202
  try {
@@ -25189,7 +25232,6 @@ function Loader({
25189
25232
  let intervalId;
25190
25233
  if (pollIntervalInSeconds) {
25191
25234
  intervalId = setInterval(() => {
25192
- setIsRefetching(true);
25193
25235
  refetch();
25194
25236
  }, pollIntervalInSeconds * 1e3);
25195
25237
  }
@@ -25212,11 +25254,9 @@ function Loader({
25212
25254
  loaderLoaded2(data);
25213
25255
  setTimeout(() => {
25214
25256
  onLoaded == null ? void 0 : onLoaded(data, isRefetching);
25215
- setIsRefetching(false);
25216
25257
  }, 0);
25217
25258
  } else if (status === "error" && error2 !== prevError) {
25218
25259
  loaderError2(error2);
25219
- setIsRefetching(false);
25220
25260
  }
25221
25261
  }, [data, error2, loaderError2, loaderLoaded2, onLoaded, prevData, prevError, status, isRefetching]);
25222
25262
  useLayoutEffect(() => {
@@ -25227,7 +25267,6 @@ function Loader({
25227
25267
  useEffect(() => {
25228
25268
  registerComponentApi == null ? void 0 : registerComponentApi({
25229
25269
  refetch: async (options2) => {
25230
- setIsRefetching(true);
25231
25270
  refetch(options2);
25232
25271
  },
25233
25272
  update: async (updater) => {
@@ -25268,14 +25307,15 @@ function Loader({
25268
25307
  }, [appContext.queryClient, queryId, refetch, registerComponentApi, data]);
25269
25308
  return null;
25270
25309
  }
25271
- function ApiLoader$1({
25310
+ function ApiLoader({
25272
25311
  loader,
25273
25312
  loaderInProgressChanged: loaderInProgressChanged2,
25274
25313
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25275
25314
  loaderLoaded: loaderLoaded2,
25276
25315
  loaderError: loaderError2,
25277
25316
  state,
25278
- doNotRemoveNulls
25317
+ doNotRemoveNulls,
25318
+ structuralSharing = true
25279
25319
  }) {
25280
25320
  const appContext = useAppContext();
25281
25321
  const url = extractParam(state, loader.props.url, appContext);
@@ -25303,7 +25343,8 @@ function ApiLoader$1({
25303
25343
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25304
25344
  loaderLoaded: loaderLoaded2,
25305
25345
  loaderError: loaderError2,
25306
- loaderFn: doLoad
25346
+ loaderFn: doLoad,
25347
+ structuralSharing
25307
25348
  }
25308
25349
  );
25309
25350
  }
@@ -25318,7 +25359,7 @@ const apiLoaderRenderer = createLoaderRenderer(
25318
25359
  "ApiLoader",
25319
25360
  ({ loader, state, loaderInProgressChanged: loaderInProgressChanged2, loaderIsRefetchingChanged: loaderIsRefetchingChanged2, loaderLoaded: loaderLoaded2, loaderError: loaderError2 }) => {
25320
25361
  return /* @__PURE__ */ jsx(
25321
- ApiLoader$1,
25362
+ ApiLoader,
25322
25363
  {
25323
25364
  loader,
25324
25365
  state,
@@ -25338,7 +25379,8 @@ function ExternalDataLoader({
25338
25379
  loaderError: loaderError2,
25339
25380
  loaderLoaded: loaderLoaded2,
25340
25381
  state,
25341
- doNotRemoveNulls
25382
+ doNotRemoveNulls,
25383
+ structuralSharing = true
25342
25384
  }) {
25343
25385
  const appContext = useAppContext();
25344
25386
  const method = extractParam(state, loader.props.method, appContext);
@@ -25373,7 +25415,8 @@ function ExternalDataLoader({
25373
25415
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25374
25416
  loaderLoaded: loaderLoaded2,
25375
25417
  loaderError: loaderError2,
25376
- loaderFn: doLoad
25418
+ loaderFn: doLoad,
25419
+ structuralSharing
25377
25420
  }
25378
25421
  );
25379
25422
  }
@@ -25403,13 +25446,14 @@ const externalDataLoaderRenderer = createLoaderRenderer(
25403
25446
  },
25404
25447
  ExternalDataLoaderMd
25405
25448
  );
25406
- function ApiLoader({
25449
+ function MockLoader({
25407
25450
  loader,
25408
25451
  loaderInProgressChanged: loaderInProgressChanged2,
25409
25452
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25410
25453
  loaderError: loaderError2,
25411
25454
  loaderLoaded: loaderLoaded2,
25412
- state
25455
+ state,
25456
+ structuralSharing
25413
25457
  }) {
25414
25458
  const appContext = useAppContext();
25415
25459
  const waitTime = extractParam(state, loader.props.waitTime, appContext);
@@ -25427,7 +25471,8 @@ function ApiLoader({
25427
25471
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25428
25472
  loaderLoaded: loaderLoaded2,
25429
25473
  loaderError: loaderError2,
25430
- loaderFn: doLoad
25474
+ loaderFn: doLoad,
25475
+ structuralSharing
25431
25476
  }
25432
25477
  );
25433
25478
  }
@@ -25442,7 +25487,7 @@ const mockLoaderRenderer = createLoaderRenderer(
25442
25487
  "MockLoader",
25443
25488
  ({ loader, state, loaderInProgressChanged: loaderInProgressChanged2, loaderLoaded: loaderLoaded2, loaderError: loaderError2 }) => {
25444
25489
  return /* @__PURE__ */ jsx(
25445
- ApiLoader,
25490
+ MockLoader,
25446
25491
  {
25447
25492
  loader,
25448
25493
  state,
@@ -25467,7 +25512,8 @@ function PageableLoader({
25467
25512
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25468
25513
  loaderLoaded: loaderLoaded2,
25469
25514
  loaderError: loaderError2,
25470
- transformResult
25515
+ transformResult,
25516
+ structuralSharing = true
25471
25517
  }) {
25472
25518
  const { uid } = loader;
25473
25519
  const appContext = useAppContext();
@@ -25476,7 +25522,6 @@ function PageableLoader({
25476
25522
  [appContext, loader.props, queryId, state, uid]
25477
25523
  );
25478
25524
  const thizRef = useRef(queryKey);
25479
- const [isRefetching, setIsRefetching] = useState(false);
25480
25525
  const getPreviousPageParam = useCallback(
25481
25526
  (firstPage) => {
25482
25527
  let prevPageParam = void 0;
@@ -25526,7 +25571,8 @@ function PageableLoader({
25526
25571
  isFetching,
25527
25572
  refetch,
25528
25573
  fetchPreviousPage,
25529
- fetchNextPage
25574
+ fetchNextPage,
25575
+ isRefetching
25530
25576
  } = useInfiniteQuery({
25531
25577
  queryKey,
25532
25578
  queryFn: useCallback(
@@ -25535,6 +25581,7 @@ function PageableLoader({
25535
25581
  },
25536
25582
  [loaderFn]
25537
25583
  ),
25584
+ structuralSharing,
25538
25585
  select: useCallback(
25539
25586
  (data2) => {
25540
25587
  let result = [];
@@ -25594,11 +25641,9 @@ function PageableLoader({
25594
25641
  loaderLoaded2(data, pageInfo);
25595
25642
  setTimeout(() => {
25596
25643
  onLoaded == null ? void 0 : onLoaded(data, isRefetching);
25597
- setIsRefetching(false);
25598
25644
  }, 0);
25599
25645
  } else if (status === "error" && prevError !== error2) {
25600
25646
  loaderError2(error2);
25601
- setIsRefetching(false);
25602
25647
  }
25603
25648
  }, [
25604
25649
  data,
@@ -25616,7 +25661,6 @@ function PageableLoader({
25616
25661
  let intervalId;
25617
25662
  if (pollIntervalInSeconds) {
25618
25663
  intervalId = setInterval(() => {
25619
- setIsRefetching(true);
25620
25664
  refetch();
25621
25665
  }, pollIntervalInSeconds * 1e3);
25622
25666
  }
@@ -25637,7 +25681,6 @@ function PageableLoader({
25637
25681
  fetchPrevPage,
25638
25682
  fetchNextPage: stableFetchNextPage,
25639
25683
  refetch: async (options2) => {
25640
- setIsRefetching(true);
25641
25684
  refetch(options2);
25642
25685
  },
25643
25686
  update: async (updater) => {
@@ -25704,7 +25747,8 @@ function DataLoader({
25704
25747
  loaderIsRefetchingChanged: loaderIsRefetchingChanged2,
25705
25748
  loaderLoaded: loaderLoaded2,
25706
25749
  loaderError: loaderError2,
25707
- transformResult
25750
+ transformResult,
25751
+ structuralSharing = true
25708
25752
  }) {
25709
25753
  const appContext = useAppContext();
25710
25754
  const url = extractParam(state, loader.props.url, appContext);
@@ -25964,7 +26008,8 @@ function DataLoader({
25964
26008
  registerComponentApi,
25965
26009
  pollIntervalInSeconds,
25966
26010
  onLoaded,
25967
- transformResult
26011
+ transformResult,
26012
+ structuralSharing
25968
26013
  },
25969
26014
  queryId == null ? void 0 : queryId.join("")
25970
26015
  ) : /* @__PURE__ */ jsx(
@@ -25981,7 +26026,8 @@ function DataLoader({
25981
26026
  pollIntervalInSeconds,
25982
26027
  registerComponentApi,
25983
26028
  onLoaded,
25984
- transformResult
26029
+ transformResult,
26030
+ structuralSharing
25985
26031
  },
25986
26032
  queryId == null ? void 0 : queryId.join("")
25987
26033
  );
@@ -26003,7 +26049,8 @@ const DataLoaderMd = createMetadata({
26003
26049
  completedNotificationMessage: d("The message to show when the loader completes"),
26004
26050
  errorNotificationMessage: d("The message to show when an error occurs"),
26005
26051
  transformResult: d("Function for transforming the datasource result"),
26006
- dataType: d("Type of data to fetch (default: json, or csv, or sql)")
26052
+ dataType: d("Type of data to fetch (default: json, or csv, or sql)"),
26053
+ structuralSharing: d("Whether to use structural sharing for the data")
26007
26054
  },
26008
26055
  events: {
26009
26056
  loaded: d("Event to trigger when the data is loaded"),
@@ -26021,7 +26068,8 @@ const dataLoaderRenderer = createLoaderRenderer(
26021
26068
  loaderError: loaderError2,
26022
26069
  registerComponentApi,
26023
26070
  lookupAction,
26024
- lookupSyncCallback
26071
+ lookupSyncCallback,
26072
+ extractValue
26025
26073
  }) => {
26026
26074
  var _a, _b, _c;
26027
26075
  if (!((_a = loader.props) == null ? void 0 : _a.url) || !loader.props.url.trim()) {
@@ -26039,7 +26087,8 @@ const dataLoaderRenderer = createLoaderRenderer(
26039
26087
  registerComponentApi,
26040
26088
  transformResult: lookupSyncCallback(loader.props.transformResult),
26041
26089
  onLoaded: lookupAction((_b = loader.events) == null ? void 0 : _b.loaded, { eventName: "loaded" }),
26042
- onError: lookupAction((_c = loader.events) == null ? void 0 : _c.error, { eventName: "error" })
26090
+ onError: lookupAction((_c = loader.events) == null ? void 0 : _c.error, { eventName: "error" }),
26091
+ structuralSharing: extractValue.asOptionalBoolean(loader.props.structuralSharing)
26043
26092
  }
26044
26093
  );
26045
26094
  },
@@ -31596,7 +31645,7 @@ function IconProvider({ children }) {
31596
31645
  /* @__PURE__ */ jsx("svg", { style: { display: "none" }, ref: spriteRootRef })
31597
31646
  ] });
31598
31647
  }
31599
- const version = "0.9.15";
31648
+ const version = "0.9.17";
31600
31649
  const ApiInterceptorContext = createContext(null);
31601
31650
  function useApiInterceptorContext() {
31602
31651
  return useContext(ApiInterceptorContext);
@@ -35180,7 +35229,8 @@ function renderChild({
35180
35229
  return nodeValue ?? "";
35181
35230
  }
35182
35231
  if (node.type === "TextNode") {
35183
- return extractParam(state, nodeValue, appContext, true);
35232
+ const extractedValue = extractParam(state, nodeValue, appContext, true);
35233
+ return typeof extractedValue === "boolean" ? extractedValue.toString() : extractedValue;
35184
35234
  }
35185
35235
  if (node.type === "Slot") {
35186
35236
  let slotChildren;
@@ -35628,7 +35678,8 @@ const AppWrapper = ({
35628
35678
  resources,
35629
35679
  resourceMap,
35630
35680
  sources,
35631
- children
35681
+ children,
35682
+ projectCompilation
35632
35683
  }) => {
35633
35684
  if (previewMode) {
35634
35685
  HelmetProvider.canUseDOM = false;
@@ -35647,7 +35698,7 @@ const AppWrapper = ({
35647
35698
  defaultTheme,
35648
35699
  defaultTone,
35649
35700
  resources,
35650
- children: /* @__PURE__ */ jsx(InspectorProvider, { sources, children: /* @__PURE__ */ jsx(ConfirmationModalContextProvider, { children: /* @__PURE__ */ jsx(
35701
+ children: /* @__PURE__ */ jsx(InspectorProvider, { sources, projectCompilation, children: /* @__PURE__ */ jsx(ConfirmationModalContextProvider, { children: /* @__PURE__ */ jsx(
35651
35702
  AppContent,
35652
35703
  {
35653
35704
  rootContainer: node,
@@ -35781,7 +35832,7 @@ function ApiInterceptorProvider({
35781
35832
  let interceptorWorker;
35782
35833
  (async () => {
35783
35834
  if (process.env.VITE_MOCK_ENABLED) {
35784
- const { createApiInterceptorWorker } = await import("./apiInterceptorWorker-DHw39GG3.mjs");
35835
+ const { createApiInterceptorWorker } = await import("./apiInterceptorWorker-D94b73xQ.mjs");
35785
35836
  if (interceptor) {
35786
35837
  interceptorWorker = await createApiInterceptorWorker(interceptor, apiWorker);
35787
35838
  if (!apiWorker) {
@@ -36108,6 +36159,10 @@ const DataSourceMd = createMetadata({
36108
36159
  },
36109
36160
  nextPageSelector: {
36110
36161
  description: `When using \`${COMP}\` with paging, the response may contain information about the previous and next page. This property defines the selector that extracts the next page information from the response deserialized to an object.`
36162
+ },
36163
+ structuralSharing: {
36164
+ description: "This property allows structural sharing. When turned on, `DataSource` will keep the original reference if nothing has changed in the data. If a subset has changed, `DataSource` will keep the unchanged parts and only replace the changed parts. If you do not need this behavior, set this property to `false`.",
36165
+ defaultValue: "true"
36111
36166
  }
36112
36167
  },
36113
36168
  events: {
@@ -36117,7 +36172,9 @@ const DataSourceMd = createMetadata({
36117
36172
  error: d(`This event fires when a request results in an error.`)
36118
36173
  },
36119
36174
  apis: {
36120
- value: d("This property retrieves the data queried from the source after optional transformations."),
36175
+ value: d(
36176
+ "This property retrieves the data queried from the source after optional transformations."
36177
+ ),
36121
36178
  inProgress: d("This property indicates if the data is being fetched."),
36122
36179
  isRefetching: d("This property indicates if the data is being re-fetched."),
36123
36180
  loaded: d("This property indicates if the data has been loaded."),