@teselagen/ui 0.10.2 → 0.10.3

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/index.es.js CHANGED
@@ -55,7 +55,7 @@ var __async = (__this, __arguments, generator) => {
55
55
  };
56
56
  import * as React from "react";
57
57
  import React__default, { useState, useEffect, forwardRef as forwardRef$2, useImperativeHandle, Fragment, useMemo, useRef, useReducer, useCallback, createElement, Component, useLayoutEffect, createContext as createContext$1, memo, useContext, isValidElement, PureComponent } from "react";
58
- import { Icon, Classes, Button, Intent, MenuItem, Keys, Tag, Popover, Tooltip, Spinner, Checkbox, Switch, Position, FormGroup, InputGroup, TextArea, EditableText, NumericInput, RadioGroup, Menu, Toaster, MenuDivider, useHotkeys, ContextMenu, Callout, Dialog, Card, Tabs, Tab, Colors, HTMLSelect, Overlay, KeyCombo, ProgressBar } from "@blueprintjs/core";
58
+ import { Classes, Icon, Button, Intent, MenuItem, Keys, Tag, Popover, Tooltip, Spinner, Checkbox, Switch, Position, FormGroup, InputGroup, TextArea, EditableText, NumericInput, RadioGroup, Menu, Toaster, MenuDivider, ContextMenu, KeyCombo, useHotkeys, Callout, Dialog, Card, Tabs, Tab, Colors, HTMLSelect, Overlay, ProgressBar } from "@blueprintjs/core";
59
59
  import { formValueSelector, initialize, change, Field, reduxForm, SubmissionError, destroy, touch, FormName, Fields } from "redux-form";
60
60
  import require$$2$1, { unstable_batchedUpdates, createPortal, flushSync } from "react-dom";
61
61
  import { connect, useDispatch, useSelector, useStore } from "react-redux";
@@ -3055,26 +3055,6 @@ const LoadingDots = /* @__PURE__ */ __name(() => {
3055
3055
  const FormSeparator = /* @__PURE__ */ __name(({ label = "or" } = {}) => {
3056
3056
  return /* @__PURE__ */ React__default.createElement("div", { className: "form-separator" }, /* @__PURE__ */ React__default.createElement("p", { style: { opacity: 0.8 } }, label));
3057
3057
  }, "FormSeparator");
3058
- const AssignDefaultsModeContext = React__default.createContext({
3059
- inAssignDefaultsMode: false,
3060
- // eslint-disable-next-line @typescript-eslint/no-empty-function
3061
- setAssignDefaultsMode: /* @__PURE__ */ __name(() => {
3062
- }, "setAssignDefaultsMode")
3063
- });
3064
- const workflowDefaultParamsObj = {
3065
- taskNumber: void 0,
3066
- workflowDefinitionName: void 0,
3067
- workflowDefinitionId: void 0,
3068
- workflowRunName: void 0,
3069
- workflowRunId: void 0,
3070
- toolName: void 0,
3071
- workflowToolTitle: void 0,
3072
- workflowToolDefinitionId: void 0,
3073
- workflowTaskCode: void 0
3074
- };
3075
- const WorkflowDefaultParamsContext = React__default.createContext(
3076
- workflowDefaultParamsObj
3077
- );
3078
3058
  var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
3079
3059
  function getDefaultExportFromCjs(x2) {
3080
3060
  return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
@@ -3105,6 +3085,111 @@ function getAugmentedNamespace(n2) {
3105
3085
  return a2;
3106
3086
  }
3107
3087
  __name(getAugmentedNamespace, "getAugmentedNamespace");
3088
+ var classnames = { exports: {} };
3089
+ /*!
3090
+ Copyright (c) 2018 Jed Watson.
3091
+ Licensed under the MIT License (MIT), see
3092
+ http://jedwatson.github.io/classnames
3093
+ */
3094
+ var hasRequiredClassnames;
3095
+ function requireClassnames() {
3096
+ if (hasRequiredClassnames) return classnames.exports;
3097
+ hasRequiredClassnames = 1;
3098
+ (function(module2) {
3099
+ (function() {
3100
+ var hasOwn2 = {}.hasOwnProperty;
3101
+ function classNames2() {
3102
+ var classes = "";
3103
+ for (var i2 = 0; i2 < arguments.length; i2++) {
3104
+ var arg = arguments[i2];
3105
+ if (arg) {
3106
+ classes = appendClass(classes, parseValue(arg));
3107
+ }
3108
+ }
3109
+ return classes;
3110
+ }
3111
+ __name(classNames2, "classNames");
3112
+ function parseValue(arg) {
3113
+ if (typeof arg === "string" || typeof arg === "number") {
3114
+ return arg;
3115
+ }
3116
+ if (typeof arg !== "object") {
3117
+ return "";
3118
+ }
3119
+ if (Array.isArray(arg)) {
3120
+ return classNames2.apply(null, arg);
3121
+ }
3122
+ if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
3123
+ return arg.toString();
3124
+ }
3125
+ var classes = "";
3126
+ for (var key in arg) {
3127
+ if (hasOwn2.call(arg, key) && arg[key]) {
3128
+ classes = appendClass(classes, key);
3129
+ }
3130
+ }
3131
+ return classes;
3132
+ }
3133
+ __name(parseValue, "parseValue");
3134
+ function appendClass(value, newClass) {
3135
+ if (!newClass) {
3136
+ return value;
3137
+ }
3138
+ if (value) {
3139
+ return value + " " + newClass;
3140
+ }
3141
+ return value + newClass;
3142
+ }
3143
+ __name(appendClass, "appendClass");
3144
+ if (module2.exports) {
3145
+ classNames2.default = classNames2;
3146
+ module2.exports = classNames2;
3147
+ } else {
3148
+ window.classNames = classNames2;
3149
+ }
3150
+ })();
3151
+ })(classnames);
3152
+ return classnames.exports;
3153
+ }
3154
+ __name(requireClassnames, "requireClassnames");
3155
+ var classnamesExports = requireClassnames();
3156
+ const classNames = /* @__PURE__ */ getDefaultExportFromCjs(classnamesExports);
3157
+ function DividerWithText({ text: text2, className, style }) {
3158
+ return /* @__PURE__ */ React__default.createElement(
3159
+ "div",
3160
+ {
3161
+ className: classNames(
3162
+ Classes.DIVIDER,
3163
+ "tg-blueprint-divider",
3164
+ { "tg-blueprint-divider-with-text": !!text2 },
3165
+ className
3166
+ ),
3167
+ style
3168
+ },
3169
+ text2 && /* @__PURE__ */ React__default.createElement("span", { className: "tg-blueprint-divider-text" }, text2)
3170
+ );
3171
+ }
3172
+ __name(DividerWithText, "DividerWithText");
3173
+ const AssignDefaultsModeContext = React__default.createContext({
3174
+ inAssignDefaultsMode: false,
3175
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
3176
+ setAssignDefaultsMode: /* @__PURE__ */ __name(() => {
3177
+ }, "setAssignDefaultsMode")
3178
+ });
3179
+ const workflowDefaultParamsObj = {
3180
+ taskNumber: void 0,
3181
+ workflowDefinitionName: void 0,
3182
+ workflowDefinitionId: void 0,
3183
+ workflowRunName: void 0,
3184
+ workflowRunId: void 0,
3185
+ toolName: void 0,
3186
+ workflowToolTitle: void 0,
3187
+ workflowToolDefinitionId: void 0,
3188
+ workflowTaskCode: void 0
3189
+ };
3190
+ const WorkflowDefaultParamsContext = React__default.createContext(
3191
+ workflowDefaultParamsObj
3192
+ );
3108
3193
  var propTypes$1 = { exports: {} };
3109
3194
  var ReactPropTypesSecret_1;
3110
3195
  var hasRequiredReactPropTypesSecret;
@@ -4570,75 +4655,6 @@ __name(reducer$1, "reducer$1");
4570
4655
  function noop$5() {
4571
4656
  }
4572
4657
  __name(noop$5, "noop$5");
4573
- var classnames = { exports: {} };
4574
- /*!
4575
- Copyright (c) 2018 Jed Watson.
4576
- Licensed under the MIT License (MIT), see
4577
- http://jedwatson.github.io/classnames
4578
- */
4579
- var hasRequiredClassnames;
4580
- function requireClassnames() {
4581
- if (hasRequiredClassnames) return classnames.exports;
4582
- hasRequiredClassnames = 1;
4583
- (function(module2) {
4584
- (function() {
4585
- var hasOwn2 = {}.hasOwnProperty;
4586
- function classNames2() {
4587
- var classes = "";
4588
- for (var i2 = 0; i2 < arguments.length; i2++) {
4589
- var arg = arguments[i2];
4590
- if (arg) {
4591
- classes = appendClass(classes, parseValue(arg));
4592
- }
4593
- }
4594
- return classes;
4595
- }
4596
- __name(classNames2, "classNames");
4597
- function parseValue(arg) {
4598
- if (typeof arg === "string" || typeof arg === "number") {
4599
- return arg;
4600
- }
4601
- if (typeof arg !== "object") {
4602
- return "";
4603
- }
4604
- if (Array.isArray(arg)) {
4605
- return classNames2.apply(null, arg);
4606
- }
4607
- if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes("[native code]")) {
4608
- return arg.toString();
4609
- }
4610
- var classes = "";
4611
- for (var key in arg) {
4612
- if (hasOwn2.call(arg, key) && arg[key]) {
4613
- classes = appendClass(classes, key);
4614
- }
4615
- }
4616
- return classes;
4617
- }
4618
- __name(parseValue, "parseValue");
4619
- function appendClass(value, newClass) {
4620
- if (!newClass) {
4621
- return value;
4622
- }
4623
- if (value) {
4624
- return value + " " + newClass;
4625
- }
4626
- return value + newClass;
4627
- }
4628
- __name(appendClass, "appendClass");
4629
- if (module2.exports) {
4630
- classNames2.default = classNames2;
4631
- module2.exports = classNames2;
4632
- } else {
4633
- window.classNames = classNames2;
4634
- }
4635
- })();
4636
- })(classnames);
4637
- return classnames.exports;
4638
- }
4639
- __name(requireClassnames, "requireClassnames");
4640
- var classnamesExports = requireClassnames();
4641
- const classNames = /* @__PURE__ */ getDefaultExportFromCjs(classnamesExports);
4642
4658
  let nanoid = /* @__PURE__ */ __name((size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
4643
4659
  byte &= 63;
4644
4660
  if (byte < 36) {
@@ -19427,10 +19443,10 @@ function tableQueryParamsToHasuraClauses({
19427
19443
  const uniqueFieldsByPath = {};
19428
19444
  const searchTerms = searchTerm.split(",");
19429
19445
  schema.fields.forEach((field) => {
19430
- const { type: type2, path: path2, searchDisabled } = field;
19446
+ const { type: type2, path: path2, searchDisabled, isHidden } = field;
19431
19447
  if (uniqueFieldsByPath[path2]) return;
19432
19448
  uniqueFieldsByPath[path2] = true;
19433
- if (searchDisabled || field.filterDisabled || type2 === "color") return;
19449
+ if (searchDisabled || field.filterDisabled || type2 === "color" || isHidden) return;
19434
19450
  searchTerms.forEach((term) => {
19435
19451
  const filterValue = term.trim();
19436
19452
  if (type2 === "string" || type2 === "lookup") {
@@ -34462,6 +34478,7 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34462
34478
  compact,
34463
34479
  extraCompact,
34464
34480
  disabled,
34481
+ doNotSearchHiddenColumns,
34465
34482
  hideDisplayOptionsIcon,
34466
34483
  resetDefaultVisibility = noop$4,
34467
34484
  updateColumnVisibility = noop$4,
@@ -34492,7 +34509,7 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34492
34509
  });
34493
34510
  let numVisible = 0;
34494
34511
  const getFieldCheckbox = /* @__PURE__ */ __name((field, i2) => {
34495
- const { displayName, isHidden, isForcedHidden, path: path2 } = field;
34512
+ const { displayName, isHidden, isForcedHidden, path: path2, subFrag } = field;
34496
34513
  if (isForcedHidden) return;
34497
34514
  if (!isHidden) numVisible++;
34498
34515
  return /* @__PURE__ */ React__default.createElement(
@@ -34509,7 +34526,15 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34509
34526
  updateColumnVisibility({ shouldShow: isHidden, path: path2 });
34510
34527
  }, "onChange"),
34511
34528
  checked: !isHidden,
34512
- label: displayName
34529
+ label: /* @__PURE__ */ React__default.createElement("span", { style: { display: "flex", marginTop: -17 } }, displayName, subFrag && /* @__PURE__ */ React__default.createElement(
34530
+ InfoHelper,
34531
+ {
34532
+ icon: "warning-sign",
34533
+ intent: "warning",
34534
+ style: { marginLeft: 5 }
34535
+ },
34536
+ "Viewing this column may cause the table to load slower"
34537
+ ))
34513
34538
  }
34514
34539
  );
34515
34540
  }, "getFieldCheckbox");
@@ -34558,7 +34583,7 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34558
34583
  {
34559
34584
  isOpen,
34560
34585
  onClose: /* @__PURE__ */ __name(() => setIsOpen(false), "onClose"),
34561
- content: /* @__PURE__ */ React__default.createElement(Menu, null, /* @__PURE__ */ React__default.createElement("div", { style: { padding: 10, paddingLeft: 20, paddingRight: 20 } }, /* @__PURE__ */ React__default.createElement("h5", { style: { marginBottom: 10 } }, "Display Density:"), /* @__PURE__ */ React__default.createElement("div", { className: Classes.SELECT + " tg-table-display-density" }, /* @__PURE__ */ React__default.createElement(
34586
+ content: /* @__PURE__ */ React__default.createElement(Menu, null, /* @__PURE__ */ React__default.createElement("div", { style: { padding: 10, paddingLeft: 20, paddingRight: 20 } }, /* @__PURE__ */ React__default.createElement("h5", { style: { marginBottom: 10, fontWeight: "bold" } }, "Display Density:"), /* @__PURE__ */ React__default.createElement("div", { className: Classes.SELECT + " tg-table-display-density" }, /* @__PURE__ */ React__default.createElement(
34562
34587
  "select",
34563
34588
  {
34564
34589
  onChange: changeTableDensity,
@@ -34574,7 +34599,19 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34574
34599
  },
34575
34600
  "Compact"
34576
34601
  )
34577
- )), /* @__PURE__ */ React__default.createElement("h5", { style: { marginBottom: 10, marginTop: 10 } }, "Displayed Columns:"), /* @__PURE__ */ React__default.createElement("div", { style: { maxHeight: 260, overflowY: "auto", padding: 2 } }, mainFields.map(getFieldCheckbox)), /* @__PURE__ */ React__default.createElement("div", null, fieldGroupMenu), hasOptionForForcedHidden && /* @__PURE__ */ React__default.createElement("div", { style: { marginTop: 15 } }, /* @__PURE__ */ React__default.createElement(
34602
+ )), /* @__PURE__ */ React__default.createElement(
34603
+ "h5",
34604
+ {
34605
+ style: {
34606
+ fontWeight: "bold",
34607
+ marginBottom: 10,
34608
+ marginTop: 10,
34609
+ display: "flex"
34610
+ }
34611
+ },
34612
+ "Displayed Columns:  ",
34613
+ doNotSearchHiddenColumns && /* @__PURE__ */ React__default.createElement(InfoHelper, null, "Note: Hidden columns will NOT be used when searching the datatable")
34614
+ ), /* @__PURE__ */ React__default.createElement("div", { style: { maxHeight: 260, overflowY: "auto", padding: 2 } }, mainFields.map(getFieldCheckbox)), /* @__PURE__ */ React__default.createElement("div", null, fieldGroupMenu), hasOptionForForcedHidden && /* @__PURE__ */ React__default.createElement("div", { style: { marginTop: 15 } }, /* @__PURE__ */ React__default.createElement(
34578
34615
  Switch,
34579
34616
  {
34580
34617
  label: "Show Empty Columns",
@@ -34595,9 +34632,10 @@ const DisplayOptions = /* @__PURE__ */ __name(({
34595
34632
  {
34596
34633
  onClick: resetDefaultVisibility,
34597
34634
  title: "Display Options",
34635
+ icon: "reset",
34598
34636
  minimal: true
34599
34637
  },
34600
- "Reset"
34638
+ "Reset Column Visibilites"
34601
34639
  )
34602
34640
  )))
34603
34641
  },
@@ -51341,6 +51379,273 @@ const RenderCell = /* @__PURE__ */ __name(({
51341
51379
  }
51342
51380
  ));
51343
51381
  }, "RenderCell");
51382
+ function MenuItemLink({ text: text2, onClick, icon, navTo, active: active2, disabled }) {
51383
+ if (disabled) {
51384
+ return /* @__PURE__ */ React__default.createElement("li", { className: Classes.POPOVER_DISMISS }, /* @__PURE__ */ React__default.createElement(MenuItem, { icon, disabled: true, text: text2 }));
51385
+ }
51386
+ const handleLinkClick = /* @__PURE__ */ __name((e) => {
51387
+ e.target.closest(`.${Classes.POPOVER_DISMISS}`).click();
51388
+ }, "handleLinkClick");
51389
+ return /* @__PURE__ */ React__default.createElement("li", { className: Classes.POPOVER_DISMISS, onClick }, /* @__PURE__ */ React__default.createElement(
51390
+ Link,
51391
+ {
51392
+ onClick: handleLinkClick,
51393
+ to: navTo,
51394
+ className: classNames(Classes.MENU_ITEM, {
51395
+ [Classes.ACTIVE]: active2,
51396
+ [Classes.INTENT_PRIMARY]: active2
51397
+ })
51398
+ },
51399
+ icon && /* @__PURE__ */ React__default.createElement(Icon, { icon }),
51400
+ /* @__PURE__ */ React__default.createElement("div", { className: "bp3-text-overflow-ellipsis bp3-fill" }, text2)
51401
+ ));
51402
+ }
51403
+ __name(MenuItemLink, "MenuItemLink");
51404
+ const EnhancedMenuItem = compose(
51405
+ lifecycle({
51406
+ componentDidMount: /* @__PURE__ */ __name(function() {
51407
+ const { didMount = noop$4, className } = this.props;
51408
+ didMount({ className });
51409
+ }, "componentDidMount"),
51410
+ componentWillUnmount: /* @__PURE__ */ __name(function() {
51411
+ const { willUnmount = noop$4, className } = this.props;
51412
+ willUnmount({ className });
51413
+ }, "componentWillUnmount")
51414
+ }),
51415
+ branch(({ navTo }) => navTo, withRouter)
51416
+ )(function(_I) {
51417
+ var _J = _I, {
51418
+ navTo,
51419
+ context: context2,
51420
+ staticContext,
51421
+ didMount,
51422
+ willUnmount
51423
+ } = _J, props = __objRest(_J, [
51424
+ "navTo",
51425
+ "context",
51426
+ "staticContext",
51427
+ "didMount",
51428
+ "willUnmount"
51429
+ ]);
51430
+ let MenuItemComp = MenuItem;
51431
+ if (navTo) {
51432
+ MenuItemComp = MenuItemLink;
51433
+ }
51434
+ return /* @__PURE__ */ React__default.createElement(
51435
+ MenuItemComp,
51436
+ __spreadProps(__spreadValues(__spreadValues({
51437
+ popoverProps: {
51438
+ autoFocus: false
51439
+ }
51440
+ }, navTo && { navTo }), props), {
51441
+ onClick: props.onClick ? (...args) => {
51442
+ return props.onClick(...args, context2);
51443
+ } : void 0
51444
+ })
51445
+ );
51446
+ });
51447
+ function fnu(...args) {
51448
+ return args.find((v2) => v2 !== void 0);
51449
+ }
51450
+ __name(fnu, "fnu");
51451
+ const tickMenuEnhancer = /* @__PURE__ */ __name((def) => {
51452
+ const out = __spreadValues({}, def);
51453
+ if (out.checked !== void 0) {
51454
+ out.icon = out.checked ? "small-tick" : "blank";
51455
+ }
51456
+ return out;
51457
+ }, "tickMenuEnhancer");
51458
+ const commandMenuEnhancer = /* @__PURE__ */ __name((commands, config = {}) => (def, context2) => {
51459
+ const cmdId = typeof def === "string" ? def : def.cmd;
51460
+ let item = typeof def === "string" ? { cmd: def } : __spreadValues({}, def);
51461
+ const useTicks = fnu(item.useTicks, config.useTicks);
51462
+ delete item.useTicks;
51463
+ if (cmdId && commands[cmdId] && def.divider === void 0) {
51464
+ const command = commands[cmdId];
51465
+ const { isActive, isDisabled, isHidden } = command;
51466
+ const toggles = isActive !== void 0;
51467
+ item.hidden = fnu(item.hidden, isHidden);
51468
+ item.disabled = fnu(item.disabled, isDisabled);
51469
+ item.key = item.key || cmdId;
51470
+ item.submenu = item.submenu || command.submenu;
51471
+ item.component = item.component || command.component;
51472
+ if (toggles) {
51473
+ if (useTicks) {
51474
+ item.text = item.text || command.shortName || command.name;
51475
+ item.checked = item.checked || isActive;
51476
+ } else {
51477
+ item.text = item.text || (isActive ? command.name : command.inactiveName || command.name);
51478
+ item.icon = item.icon || (isActive ? command.icon : command.inactiveIcon || command.icon);
51479
+ }
51480
+ } else {
51481
+ item.text = item.text || command.name;
51482
+ item.icon = item.icon || command.icon;
51483
+ }
51484
+ item.hotkey = item.hotkey || command.hotkey;
51485
+ if (!item.onClick) {
51486
+ item.onClick = (event) => command.execute({
51487
+ event,
51488
+ context: context2,
51489
+ menuItem: item,
51490
+ viaMenu: true
51491
+ });
51492
+ }
51493
+ } else if (cmdId && !commands[cmdId]) {
51494
+ item.text = item.text || startCase(cmdId);
51495
+ item.disabled = true;
51496
+ }
51497
+ if (config.omitIcons) {
51498
+ item.icon = void 0;
51499
+ }
51500
+ if (config.forceIconAlignment !== false) {
51501
+ item.icon = item.icon || "blank";
51502
+ }
51503
+ if (useTicks) {
51504
+ item = tickMenuEnhancer(item);
51505
+ }
51506
+ return item;
51507
+ }, "commandMenuEnhancer");
51508
+ const ident = /* @__PURE__ */ __name((x2) => x2, "ident");
51509
+ const dividerShorthandEnhancer = /* @__PURE__ */ __name((def) => typeof def === "string" && def.startsWith("--") ? { divider: def.substr(2) } : def, "dividerShorthandEnhancer");
51510
+ const unwantedAttrs = [
51511
+ "isSimpleText",
51512
+ "justText",
51513
+ "submenu",
51514
+ "component",
51515
+ "hotkey",
51516
+ "changingProps",
51517
+ "showInSearchMenu",
51518
+ "hideFromMenuSearch"
51519
+ ];
51520
+ const DynamicMenuItem = /* @__PURE__ */ __name(({
51521
+ def,
51522
+ enhancers = [ident],
51523
+ context: context2,
51524
+ doNotEnhanceTopLevelItem
51525
+ }) => {
51526
+ if (React__default.isValidElement(def)) return def;
51527
+ const item = [
51528
+ dividerShorthandEnhancer,
51529
+ ...doNotEnhanceTopLevelItem ? [ident] : enhancers
51530
+ ].reduce((v2, f2) => f2(v2, context2), def);
51531
+ let out;
51532
+ if (item.divider !== void 0) {
51533
+ out = /* @__PURE__ */ React__default.createElement(
51534
+ MenuDivider,
51535
+ __spreadValues({}, item.divider ? { title: item.divider, className: item.className } : {})
51536
+ );
51537
+ } else {
51538
+ const ItemComponent = item.component || EnhancedMenuItem;
51539
+ out = /* @__PURE__ */ React__default.createElement(
51540
+ ItemComponent,
51541
+ __spreadProps(__spreadValues({}, omit(item, unwantedAttrs)), {
51542
+ context: context2,
51543
+ icon: item.icon || item.iconName,
51544
+ labelElement: item.hotkey && /* @__PURE__ */ React__default.createElement(KeyCombo, { minimal: true, combo: item.hotkey }),
51545
+ text: item.text
51546
+ }),
51547
+ item.submenu ? item.submenu.filter(ident).map((def2, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2 }, { def: def2, enhancers, context: context2 }))) : void 0
51548
+ );
51549
+ }
51550
+ if (item.disabled && typeof item.disabled === "string") {
51551
+ item.tooltip = item.disabled;
51552
+ }
51553
+ if (item.tooltip) {
51554
+ out = /* @__PURE__ */ React__default.createElement(Tooltip, { content: item.tooltip }, out);
51555
+ }
51556
+ return item.hidden ? null : out;
51557
+ }, "DynamicMenuItem");
51558
+ const createDynamicMenu = /* @__PURE__ */ __name((menuDef, enhancers, context2) => {
51559
+ if (menuDef instanceof Array) {
51560
+ return menuDef.map((def, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2 }, { def, enhancers, context: context2 })));
51561
+ } else {
51562
+ return /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({}, { def: menuDef, enhancers, context: context2 }));
51563
+ }
51564
+ }, "createDynamicMenu");
51565
+ const createDynamicBarMenu = /* @__PURE__ */ __name((topMenuDef, enhancers, context2) => {
51566
+ return topMenuDef.map((topLevelItem) => {
51567
+ const def = __spreadValues({}, topLevelItem);
51568
+ if (def.submenu) {
51569
+ def.submenu = def.submenu.map((subdef, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2, def: subdef }, { enhancers, context: context2 })));
51570
+ }
51571
+ return def;
51572
+ });
51573
+ }, "createDynamicBarMenu");
51574
+ const createCommandMenu = /* @__PURE__ */ __name((menuDef, commands, config, context2) => {
51575
+ return createDynamicMenu(
51576
+ menuDef,
51577
+ [commandMenuEnhancer(commands, config)],
51578
+ context2
51579
+ );
51580
+ }, "createCommandMenu");
51581
+ const createCommandBarMenu = /* @__PURE__ */ __name((menuDef, commands, config, context2) => {
51582
+ return createDynamicBarMenu(
51583
+ menuDef,
51584
+ [commandMenuEnhancer(commands, config)],
51585
+ context2
51586
+ );
51587
+ }, "createCommandBarMenu");
51588
+ function showCommandContextMenu(menuDef, commands, config, event, onClose, context2) {
51589
+ return showContextMenu(
51590
+ menuDef,
51591
+ [commandMenuEnhancer(commands, config)],
51592
+ event,
51593
+ onClose,
51594
+ context2
51595
+ );
51596
+ }
51597
+ __name(showCommandContextMenu, "showCommandContextMenu");
51598
+ const createMenu = createDynamicMenu;
51599
+ function showContextMenu(menuDef, enhancers, event, onClose, context2, menuComp = Menu) {
51600
+ menuDef = filterMenuForCorrectness(menuDef);
51601
+ if (!menuDef) return;
51602
+ const MenuComponent = menuComp;
51603
+ event.persist && event.persist();
51604
+ ContextMenu.show(
51605
+ /* @__PURE__ */ React__default.createElement(MenuComponent, null, createDynamicMenu(menuDef, enhancers, context2)),
51606
+ { left: event.clientX, top: event.clientY },
51607
+ onClose
51608
+ );
51609
+ event.stopPropagation && event.stopPropagation();
51610
+ event.preventDefault && event.preventDefault();
51611
+ }
51612
+ __name(showContextMenu, "showContextMenu");
51613
+ function filterMenuForCorrectness(menuDef) {
51614
+ return menuDef && menuDef.length && menuDef.filter(ident);
51615
+ }
51616
+ __name(filterMenuForCorrectness, "filterMenuForCorrectness");
51617
+ function getStringFromReactComponent(comp) {
51618
+ var _a;
51619
+ if (!comp) return "";
51620
+ if (isString$1(comp) || isNumber$1(comp)) return comp;
51621
+ if ((_a = comp.props) == null ? void 0 : _a.text) {
51622
+ return getStringFromReactComponent(comp.props.text);
51623
+ }
51624
+ const { children } = comp.props || {};
51625
+ if (!children) return "";
51626
+ if (isArray$2(children))
51627
+ return flatMap(children, getStringFromReactComponent).join("");
51628
+ if (isString$1(children)) return children;
51629
+ if (children.props) {
51630
+ return getStringFromReactComponent(children.props);
51631
+ }
51632
+ }
51633
+ __name(getStringFromReactComponent, "getStringFromReactComponent");
51634
+ function doesSearchValMatchText(searchVal, justText) {
51635
+ return fuzzysearch(
51636
+ searchVal ? searchVal.toLowerCase() : "",
51637
+ justText ? justText.toLowerCase() : ""
51638
+ );
51639
+ }
51640
+ __name(doesSearchValMatchText, "doesSearchValMatchText");
51641
+ const MenuItemWithTooltip = /* @__PURE__ */ __name((_K) => {
51642
+ var _L = _K, { tooltip } = _L, rest = __objRest(_L, ["tooltip"]);
51643
+ let out = /* @__PURE__ */ React__default.createElement(MenuItem, __spreadValues({}, rest));
51644
+ if (tooltip) {
51645
+ out = /* @__PURE__ */ React__default.createElement(Tooltip, { content: tooltip }, out);
51646
+ }
51647
+ return out;
51648
+ }, "MenuItemWithTooltip");
51344
51649
  dayjs.extend(localizedFormat);
51345
51650
  const RenderColumnHeader = /* @__PURE__ */ __name(({
51346
51651
  recordIdToIsVisibleMap,
@@ -51352,8 +51657,13 @@ const RenderColumnHeader = /* @__PURE__ */ __name(({
51352
51657
  entities,
51353
51658
  extraCompact,
51354
51659
  filters,
51660
+ resetDefaultVisibility,
51661
+ onlyOneVisibleColumn,
51355
51662
  formName,
51356
51663
  isCellEditable,
51664
+ updateColumnVisibility,
51665
+ schema,
51666
+ withDisplayOptions,
51357
51667
  isLocalCall,
51358
51668
  order: order2,
51359
51669
  removeSingleFilter,
@@ -51449,6 +51759,55 @@ const RenderColumnHeader = /* @__PURE__ */ __name(({
51449
51759
  <strong>${columnTitle}:</strong> <br>
51450
51760
  ${description} ${isUnique ? "<br>Must be unique" : ""}</div>`
51451
51761
  }), {
51762
+ onContextMenu: /* @__PURE__ */ __name((e) => {
51763
+ if (!withDisplayOptions) {
51764
+ return;
51765
+ }
51766
+ e.preventDefault();
51767
+ e.persist();
51768
+ showContextMenu(
51769
+ [
51770
+ {
51771
+ text: "Hide Column",
51772
+ disabled: onlyOneVisibleColumn,
51773
+ icon: "eye-off",
51774
+ onClick: /* @__PURE__ */ __name(() => {
51775
+ updateColumnVisibility({
51776
+ shouldShow: false,
51777
+ path: path2
51778
+ });
51779
+ }, "onClick")
51780
+ },
51781
+ {
51782
+ text: "Hide Other Columns",
51783
+ icon: "eye-off",
51784
+ onClick: /* @__PURE__ */ __name(() => {
51785
+ updateColumnVisibility({
51786
+ shouldShow: false,
51787
+ paths: schema.fields.map((c2) => c2.path).filter(Boolean).filter((p2) => p2 !== path2)
51788
+ });
51789
+ }, "onClick")
51790
+ },
51791
+ {
51792
+ text: "Reset Column Visibilities",
51793
+ icon: "reset",
51794
+ onClick: /* @__PURE__ */ __name(() => {
51795
+ resetDefaultVisibility();
51796
+ }, "onClick")
51797
+ },
51798
+ {
51799
+ text: "Table Display Options",
51800
+ icon: "cog",
51801
+ onClick: /* @__PURE__ */ __name(() => {
51802
+ var _a, _b;
51803
+ (_b = (_a = e.target.closest(".data-table-container")) == null ? void 0 : _a.querySelector(".tg-table-display-options")) == null ? void 0 : _b.click();
51804
+ }, "onClick")
51805
+ }
51806
+ ],
51807
+ void 0,
51808
+ e
51809
+ );
51810
+ }, "onContextMenu"),
51452
51811
  "data-test": columnTitleTextified,
51453
51812
  "data-path": path2,
51454
51813
  "data-copy-text": columnTitleTextified,
@@ -51620,6 +51979,7 @@ const useColumns = /* @__PURE__ */ __name(({
51620
51979
  addFilters,
51621
51980
  cellRenderer,
51622
51981
  columns,
51982
+ resetDefaultVisibility,
51623
51983
  currentParams,
51624
51984
  compact,
51625
51985
  editingCell,
@@ -51654,6 +52014,7 @@ const useColumns = /* @__PURE__ */ __name(({
51654
52014
  selectedCells,
51655
52015
  setExpandedEntityIdMap,
51656
52016
  setNewParams,
52017
+ updateColumnVisibility,
51657
52018
  setOrder = noop$4,
51658
52019
  setSelectedCells,
51659
52020
  shouldShowSubComponent,
@@ -51667,7 +52028,8 @@ const useColumns = /* @__PURE__ */ __name(({
51667
52028
  withFilter: _withFilter,
51668
52029
  withSort = true,
51669
52030
  recordIdToIsVisibleMap,
51670
- setRecordIdToIsVisibleMap
52031
+ setRecordIdToIsVisibleMap,
52032
+ withDisplayOptions
51671
52033
  }) => {
51672
52034
  const dispatch = useDispatch();
51673
52035
  const change$1 = useCallback(
@@ -52085,15 +52447,20 @@ const useColumns = /* @__PURE__ */ __name(({
52085
52447
  const tableColumns = columns.map((column) => {
52086
52448
  const tableColumn = __spreadProps(__spreadValues({}, column), {
52087
52449
  Header: RenderColumnHeader({
52450
+ onlyOneVisibleColumn: columns.length === 1,
52088
52451
  recordIdToIsVisibleMap,
52089
52452
  setRecordIdToIsVisibleMap,
52090
52453
  column,
52454
+ withDisplayOptions,
52091
52455
  isLocalCall,
52092
52456
  filters,
52093
52457
  currentParams,
52094
52458
  order: order2,
52459
+ resetDefaultVisibility,
52095
52460
  setOrder,
52096
52461
  withSort,
52462
+ schema,
52463
+ updateColumnVisibility,
52097
52464
  formName,
52098
52465
  extraCompact,
52099
52466
  withFilter,
@@ -56286,11 +56653,12 @@ const itemSizeEstimators = {
56286
56653
  normal: /* @__PURE__ */ __name(() => 33.34, "normal"),
56287
56654
  comfortable: /* @__PURE__ */ __name(() => 41.34, "comfortable")
56288
56655
  };
56289
- const DataTable = /* @__PURE__ */ __name((_I) => {
56290
- var _J = _I, {
56656
+ const DataTable = /* @__PURE__ */ __name((_M) => {
56657
+ var _N = _M, {
56291
56658
  controlled_pageSize,
56292
56659
  formName = "tgDataTable",
56293
56660
  history,
56661
+ doNotSearchHiddenColumns,
56294
56662
  isSimple,
56295
56663
  isLocalCall = true,
56296
56664
  isTableParamsConnected,
@@ -56301,10 +56669,11 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
56301
56669
  tableParams: _tableParams,
56302
56670
  anyTouched,
56303
56671
  blur
56304
- } = _J, ownProps = __objRest(_J, [
56672
+ } = _N, ownProps = __objRest(_N, [
56305
56673
  "controlled_pageSize",
56306
56674
  "formName",
56307
56675
  "history",
56676
+ "doNotSearchHiddenColumns",
56308
56677
  "isSimple",
56309
56678
  "isLocalCall",
56310
56679
  "isTableParamsConnected",
@@ -56618,7 +56987,8 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
56618
56987
  withSelectAll,
56619
56988
  withSort,
56620
56989
  withTitle = !isSimple,
56621
- noExcessiveCheck
56990
+ noExcessiveCheck,
56991
+ isEntityCountLoading
56622
56992
  } = props;
56623
56993
  const _entities = useMemo(
56624
56994
  () => ((reduxFormEntities == null ? void 0 : reduxFormEntities.length) ? reduxFormEntities : _origEntities) || [],
@@ -56642,7 +57012,25 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
56642
57012
  entities,
56643
57013
  formName
56644
57014
  ]);
56645
- const [tableConfig, setTableConfig] = useState({ fieldOptions: [] });
57015
+ const [tableConfig, _setTableConfig] = useState({ fieldOptions: [] });
57016
+ const setTableConfig = useCallback(
57017
+ (newConfig) => {
57018
+ _setTableConfig((prev) => {
57019
+ let newConfigVal = newConfig;
57020
+ if (typeof newConfig === "function") {
57021
+ newConfigVal = newConfig(prev);
57022
+ }
57023
+ if (!isEqual(prev.fieldOptions, newConfigVal.fieldOptions)) {
57024
+ change$1(
57025
+ "reduxFormReadOnlyFieldOptions",
57026
+ newConfigVal.fieldOptions || []
57027
+ );
57028
+ }
57029
+ return newConfigVal;
57030
+ });
57031
+ },
57032
+ [change$1]
57033
+ );
56646
57034
  useEffect(() => {
56647
57035
  if (withDisplayOptions) {
56648
57036
  let newTableConfig = {};
@@ -56759,6 +57147,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
56759
57147
  convertedSchema,
56760
57148
  currentParams,
56761
57149
  entities,
57150
+ setTableConfig,
56762
57151
  history,
56763
57152
  isInfinite,
56764
57153
  isOpenable,
@@ -56864,6 +57253,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
56864
57253
  (_a = currentUser == null ? void 0 : currentUser.user) == null ? void 0 : _a.id,
56865
57254
  deleteTableConfiguration,
56866
57255
  formName,
57256
+ setTableConfig,
56867
57257
  schema.fields,
56868
57258
  syncDisplayOptionsToDb,
56869
57259
  tableConfig,
@@ -58500,13 +58890,23 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
58500
58890
  _selectedAndTotalMessage += `/ `;
58501
58891
  }
58502
58892
  if (showCount) {
58503
- _selectedAndTotalMessage += `${entityCount || 0} Total`;
58893
+ if (isEntityCountLoading && entityCount < 1) {
58894
+ _selectedAndTotalMessage += `Loading...`;
58895
+ } else {
58896
+ _selectedAndTotalMessage += `${entityCount || 0} Total`;
58897
+ }
58504
58898
  }
58505
58899
  if (_selectedAndTotalMessage) {
58506
58900
  _selectedAndTotalMessage = /* @__PURE__ */ React__default.createElement("div", null, _selectedAndTotalMessage);
58507
58901
  }
58508
58902
  return _selectedAndTotalMessage;
58509
- }, [entityCount, selectedRowCount, showCount, showNumSelected]);
58903
+ }, [
58904
+ entityCount,
58905
+ selectedRowCount,
58906
+ showCount,
58907
+ showNumSelected,
58908
+ isEntityCountLoading
58909
+ ]);
58510
58910
  const shouldShowPaging = !isInfinite && withPaging && (hidePageSizeWhenPossible ? entityCount > pageSize : true);
58511
58911
  const SubComponentToUse = useMemo(() => {
58512
58912
  if (SubComponent) {
@@ -58578,6 +58978,8 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
58578
58978
  columns,
58579
58979
  currentParams,
58580
58980
  compact,
58981
+ withDisplayOptions,
58982
+ resetDefaultVisibility,
58581
58983
  editingCellSelectAll,
58582
58984
  entities,
58583
58985
  expandedEntityIdMap,
@@ -58615,6 +59017,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
58615
59017
  startCellEdit,
58616
59018
  SubComponent,
58617
59019
  tableRef,
59020
+ updateColumnVisibility,
58618
59021
  updateEntitiesHelper,
58619
59022
  updateValidation,
58620
59023
  withCheckboxes,
@@ -58652,7 +59055,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
58652
59055
  expanded: expandedRows,
58653
59056
  showPagination: false,
58654
59057
  sortable: false,
58655
- loading: isLoading || disabled,
59058
+ loading: disabled,
58656
59059
  defaultResized: resized,
58657
59060
  onResizedChange: /* @__PURE__ */ __name((newResized = []) => {
58658
59061
  const resizedToUse = newResized.map((column) => {
@@ -58670,7 +59073,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
58670
59073
  ThComponent: ThComponent2,
58671
59074
  getTrGroupProps: getTableRowProps,
58672
59075
  getTdProps: getTableCellProps,
58673
- NoDataComponent: /* @__PURE__ */ __name(({ children: children2 }) => isLoading ? null : /* @__PURE__ */ React__default.createElement("div", { className: "rt-noData" }, noRowsFoundMessage || children2), "NoDataComponent"),
59076
+ NoDataComponent: /* @__PURE__ */ __name(({ children: children2 }) => isLoading ? /* @__PURE__ */ React__default.createElement("div", { className: "rt-noData" }, "Loading...") : /* @__PURE__ */ React__default.createElement("div", { className: "rt-noData" }, noRowsFoundMessage || children2), "NoDataComponent"),
58674
59077
  LoadingComponent: /* @__PURE__ */ __name(({ loadingText, loading }) => /* @__PURE__ */ React__default.createElement(
58675
59078
  DisabledLoadingComponent,
58676
59079
  {
@@ -59017,6 +59420,7 @@ const DataTable = /* @__PURE__ */ __name((_I) => {
59017
59420
  /* @__PURE__ */ React__default.createElement("div", { style: { display: "flex", flexWrap: "wrap" } }, additionalFooterButtons, !noFullscreenButton && toggleFullscreenButton, withDisplayOptions && /* @__PURE__ */ React__default.createElement(
59018
59421
  DisplayOptions,
59019
59422
  {
59423
+ doNotSearchHiddenColumns,
59020
59424
  compact,
59021
59425
  extraCompact,
59022
59426
  disabled,
@@ -71810,8 +72214,8 @@ function AdvancedOptions({
71810
72214
  ), isOpen && /* @__PURE__ */ React__default.createElement("div", { style: { marginTop: 10 } }, content2 || children));
71811
72215
  }
71812
72216
  __name(AdvancedOptions, "AdvancedOptions");
71813
- const TgHTMLSelect = /* @__PURE__ */ __name((_K) => {
71814
- var _L = _K, { disabled } = _L, rest = __objRest(_L, ["disabled"]);
72217
+ const TgHTMLSelect = /* @__PURE__ */ __name((_O) => {
72218
+ var _P = _O, { disabled } = _P, rest = __objRest(_P, ["disabled"]);
71815
72219
  if (disabled) {
71816
72220
  const opt = rest.options.find((o2) => o2.value === rest.value);
71817
72221
  return /* @__PURE__ */ React__default.createElement("div", __spreadProps(__spreadValues({}, rest), { className: classNames("bp3-html-select", rest.className) }), opt.label);
@@ -71847,14 +72251,14 @@ function BlueprintError({ error }) {
71847
72251
  return /* @__PURE__ */ React__default.createElement("div", { className: classNames(Classes.FORM_GROUP, Classes.INTENT_DANGER) }, /* @__PURE__ */ React__default.createElement("div", { className: classNames(Classes.FORM_HELPER_TEXT, "preserve-newline") }, error));
71848
72252
  }
71849
72253
  __name(BlueprintError, "BlueprintError");
71850
- function DropdownButton(_M) {
71851
- var _N = _M, {
72254
+ function DropdownButton(_Q) {
72255
+ var _R = _Q, {
71852
72256
  disabled,
71853
72257
  menu,
71854
72258
  noRightIcon,
71855
72259
  popoverProps,
71856
72260
  className
71857
- } = _N, rest = __objRest(_N, [
72261
+ } = _R, rest = __objRest(_R, [
71858
72262
  "disabled",
71859
72263
  "menu",
71860
72264
  "noRightIcon",
@@ -71972,7 +72376,34 @@ const useTableParams = /* @__PURE__ */ __name((props) => {
71972
72376
  }, _defaults),
71973
72377
  [_defaults, controlled_pageSize]
71974
72378
  );
71975
- const convertedSchema = useMemo(() => convertSchema(schema), [schema]);
72379
+ const formValueStateSelector = /* @__PURE__ */ __name((state) => formValueSelector(formName)(
72380
+ state,
72381
+ "reduxFormQueryParams",
72382
+ "reduxFormSelectedEntityIdMap",
72383
+ "reduxFormReadOnlyFieldOptions"
72384
+ ), "formValueStateSelector");
72385
+ const {
72386
+ reduxFormQueryParams: _reduxFormQueryParams = {},
72387
+ reduxFormSelectedEntityIdMap: _reduxFormSelectedEntityIdMap = {},
72388
+ reduxFormReadOnlyFieldOptions
72389
+ } = useSelector(formValueStateSelector);
72390
+ const convertedSchema = useMemo(() => {
72391
+ const pathToHiddenMap = {};
72392
+ reduxFormReadOnlyFieldOptions == null ? void 0 : reduxFormReadOnlyFieldOptions.forEach(({ path: path2, isHidden }) => {
72393
+ if (path2) pathToHiddenMap[path2] = isHidden;
72394
+ });
72395
+ const s2 = convertSchema(schema);
72396
+ s2.fields = s2.fields.map((f2) => {
72397
+ const isHidden = pathToHiddenMap[f2.path];
72398
+ if (pathToHiddenMap[f2.path] !== void 0) {
72399
+ return __spreadProps(__spreadValues({}, f2), {
72400
+ isHidden
72401
+ });
72402
+ }
72403
+ return f2;
72404
+ });
72405
+ return s2;
72406
+ }, [schema, reduxFormReadOnlyFieldOptions]);
71976
72407
  if (isLocalCall) {
71977
72408
  if (!noForm && (!formName || formName === "tgDataTable")) {
71978
72409
  console.error(
@@ -71991,15 +72422,6 @@ const useTableParams = /* @__PURE__ */ __name((props) => {
71991
72422
  );
71992
72423
  }
71993
72424
  }
71994
- const formValueStateSelector = /* @__PURE__ */ __name((state) => formValueSelector(formName)(
71995
- state,
71996
- "reduxFormQueryParams",
71997
- "reduxFormSelectedEntityIdMap"
71998
- ), "formValueStateSelector");
71999
- const {
72000
- reduxFormQueryParams: _reduxFormQueryParams = {},
72001
- reduxFormSelectedEntityIdMap: _reduxFormSelectedEntityIdMap = {}
72002
- } = useSelector(formValueStateSelector);
72003
72425
  const reduxFormQueryParams = useDeepEqualMemo(_reduxFormQueryParams);
72004
72426
  const reduxFormSelectedEntityIdMap = useDeepEqualMemo(
72005
72427
  _reduxFormSelectedEntityIdMap
@@ -72156,6 +72578,7 @@ function CollapsibleCard({
72156
72578
  className,
72157
72579
  style,
72158
72580
  children,
72581
+ helperText: helperText2,
72159
72582
  initialClosed = false,
72160
72583
  toggle,
72161
72584
  isOpen
@@ -72189,7 +72612,7 @@ function CollapsibleCard({
72189
72612
  }
72190
72613
  },
72191
72614
  title
72192
- ), /* @__PURE__ */ React__default.createElement("div", null, open2 && openTitleElements)), /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(
72615
+ ), helperText2 && /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(InfoHelper, { children: helperText2 }), "  "), open2 && /* @__PURE__ */ React__default.createElement("div", null, " ", openTitleElements)), /* @__PURE__ */ React__default.createElement("div", null, /* @__PURE__ */ React__default.createElement(
72193
72616
  Button,
72194
72617
  {
72195
72618
  icon: open2 ? "minimize" : "maximize",
@@ -75454,273 +75877,6 @@ const _ResizableDraggableDialog = class _ResizableDraggableDialog extends React_
75454
75877
  };
75455
75878
  __name(_ResizableDraggableDialog, "ResizableDraggableDialog");
75456
75879
  let ResizableDraggableDialog = _ResizableDraggableDialog;
75457
- function MenuItemLink({ text: text2, onClick, icon, navTo, active: active2, disabled }) {
75458
- if (disabled) {
75459
- return /* @__PURE__ */ React__default.createElement("li", { className: Classes.POPOVER_DISMISS }, /* @__PURE__ */ React__default.createElement(MenuItem, { icon, disabled: true, text: text2 }));
75460
- }
75461
- const handleLinkClick = /* @__PURE__ */ __name((e) => {
75462
- e.target.closest(`.${Classes.POPOVER_DISMISS}`).click();
75463
- }, "handleLinkClick");
75464
- return /* @__PURE__ */ React__default.createElement("li", { className: Classes.POPOVER_DISMISS, onClick }, /* @__PURE__ */ React__default.createElement(
75465
- Link,
75466
- {
75467
- onClick: handleLinkClick,
75468
- to: navTo,
75469
- className: classNames(Classes.MENU_ITEM, {
75470
- [Classes.ACTIVE]: active2,
75471
- [Classes.INTENT_PRIMARY]: active2
75472
- })
75473
- },
75474
- icon && /* @__PURE__ */ React__default.createElement(Icon, { icon }),
75475
- /* @__PURE__ */ React__default.createElement("div", { className: "bp3-text-overflow-ellipsis bp3-fill" }, text2)
75476
- ));
75477
- }
75478
- __name(MenuItemLink, "MenuItemLink");
75479
- const EnhancedMenuItem = compose(
75480
- lifecycle({
75481
- componentDidMount: /* @__PURE__ */ __name(function() {
75482
- const { didMount = noop$4, className } = this.props;
75483
- didMount({ className });
75484
- }, "componentDidMount"),
75485
- componentWillUnmount: /* @__PURE__ */ __name(function() {
75486
- const { willUnmount = noop$4, className } = this.props;
75487
- willUnmount({ className });
75488
- }, "componentWillUnmount")
75489
- }),
75490
- branch(({ navTo }) => navTo, withRouter)
75491
- )(function(_O) {
75492
- var _P = _O, {
75493
- navTo,
75494
- context: context2,
75495
- staticContext,
75496
- didMount,
75497
- willUnmount
75498
- } = _P, props = __objRest(_P, [
75499
- "navTo",
75500
- "context",
75501
- "staticContext",
75502
- "didMount",
75503
- "willUnmount"
75504
- ]);
75505
- let MenuItemComp = MenuItem;
75506
- if (navTo) {
75507
- MenuItemComp = MenuItemLink;
75508
- }
75509
- return /* @__PURE__ */ React__default.createElement(
75510
- MenuItemComp,
75511
- __spreadProps(__spreadValues(__spreadValues({
75512
- popoverProps: {
75513
- autoFocus: false
75514
- }
75515
- }, navTo && { navTo }), props), {
75516
- onClick: props.onClick ? (...args) => {
75517
- return props.onClick(...args, context2);
75518
- } : void 0
75519
- })
75520
- );
75521
- });
75522
- function fnu(...args) {
75523
- return args.find((v2) => v2 !== void 0);
75524
- }
75525
- __name(fnu, "fnu");
75526
- const tickMenuEnhancer = /* @__PURE__ */ __name((def) => {
75527
- const out = __spreadValues({}, def);
75528
- if (out.checked !== void 0) {
75529
- out.icon = out.checked ? "small-tick" : "blank";
75530
- }
75531
- return out;
75532
- }, "tickMenuEnhancer");
75533
- const commandMenuEnhancer = /* @__PURE__ */ __name((commands, config = {}) => (def, context2) => {
75534
- const cmdId = typeof def === "string" ? def : def.cmd;
75535
- let item = typeof def === "string" ? { cmd: def } : __spreadValues({}, def);
75536
- const useTicks = fnu(item.useTicks, config.useTicks);
75537
- delete item.useTicks;
75538
- if (cmdId && commands[cmdId] && def.divider === void 0) {
75539
- const command = commands[cmdId];
75540
- const { isActive, isDisabled, isHidden } = command;
75541
- const toggles = isActive !== void 0;
75542
- item.hidden = fnu(item.hidden, isHidden);
75543
- item.disabled = fnu(item.disabled, isDisabled);
75544
- item.key = item.key || cmdId;
75545
- item.submenu = item.submenu || command.submenu;
75546
- item.component = item.component || command.component;
75547
- if (toggles) {
75548
- if (useTicks) {
75549
- item.text = item.text || command.shortName || command.name;
75550
- item.checked = item.checked || isActive;
75551
- } else {
75552
- item.text = item.text || (isActive ? command.name : command.inactiveName || command.name);
75553
- item.icon = item.icon || (isActive ? command.icon : command.inactiveIcon || command.icon);
75554
- }
75555
- } else {
75556
- item.text = item.text || command.name;
75557
- item.icon = item.icon || command.icon;
75558
- }
75559
- item.hotkey = item.hotkey || command.hotkey;
75560
- if (!item.onClick) {
75561
- item.onClick = (event) => command.execute({
75562
- event,
75563
- context: context2,
75564
- menuItem: item,
75565
- viaMenu: true
75566
- });
75567
- }
75568
- } else if (cmdId && !commands[cmdId]) {
75569
- item.text = item.text || startCase(cmdId);
75570
- item.disabled = true;
75571
- }
75572
- if (config.omitIcons) {
75573
- item.icon = void 0;
75574
- }
75575
- if (config.forceIconAlignment !== false) {
75576
- item.icon = item.icon || "blank";
75577
- }
75578
- if (useTicks) {
75579
- item = tickMenuEnhancer(item);
75580
- }
75581
- return item;
75582
- }, "commandMenuEnhancer");
75583
- const ident = /* @__PURE__ */ __name((x2) => x2, "ident");
75584
- const dividerShorthandEnhancer = /* @__PURE__ */ __name((def) => typeof def === "string" && def.startsWith("--") ? { divider: def.substr(2) } : def, "dividerShorthandEnhancer");
75585
- const unwantedAttrs = [
75586
- "isSimpleText",
75587
- "justText",
75588
- "submenu",
75589
- "component",
75590
- "hotkey",
75591
- "changingProps",
75592
- "showInSearchMenu",
75593
- "hideFromMenuSearch"
75594
- ];
75595
- const DynamicMenuItem = /* @__PURE__ */ __name(({
75596
- def,
75597
- enhancers = [ident],
75598
- context: context2,
75599
- doNotEnhanceTopLevelItem
75600
- }) => {
75601
- if (React__default.isValidElement(def)) return def;
75602
- const item = [
75603
- dividerShorthandEnhancer,
75604
- ...doNotEnhanceTopLevelItem ? [ident] : enhancers
75605
- ].reduce((v2, f2) => f2(v2, context2), def);
75606
- let out;
75607
- if (item.divider !== void 0) {
75608
- out = /* @__PURE__ */ React__default.createElement(
75609
- MenuDivider,
75610
- __spreadValues({}, item.divider ? { title: item.divider, className: item.className } : {})
75611
- );
75612
- } else {
75613
- const ItemComponent = item.component || EnhancedMenuItem;
75614
- out = /* @__PURE__ */ React__default.createElement(
75615
- ItemComponent,
75616
- __spreadProps(__spreadValues({}, omit(item, unwantedAttrs)), {
75617
- context: context2,
75618
- icon: item.icon || item.iconName,
75619
- labelElement: item.hotkey && /* @__PURE__ */ React__default.createElement(KeyCombo, { minimal: true, combo: item.hotkey }),
75620
- text: item.text
75621
- }),
75622
- item.submenu ? item.submenu.filter(ident).map((def2, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2 }, { def: def2, enhancers, context: context2 }))) : void 0
75623
- );
75624
- }
75625
- if (item.disabled && typeof item.disabled === "string") {
75626
- item.tooltip = item.disabled;
75627
- }
75628
- if (item.tooltip) {
75629
- out = /* @__PURE__ */ React__default.createElement(Tooltip, { content: item.tooltip }, out);
75630
- }
75631
- return item.hidden ? null : out;
75632
- }, "DynamicMenuItem");
75633
- const createDynamicMenu = /* @__PURE__ */ __name((menuDef, enhancers, context2) => {
75634
- if (menuDef instanceof Array) {
75635
- return menuDef.map((def, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2 }, { def, enhancers, context: context2 })));
75636
- } else {
75637
- return /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({}, { def: menuDef, enhancers, context: context2 }));
75638
- }
75639
- }, "createDynamicMenu");
75640
- const createDynamicBarMenu = /* @__PURE__ */ __name((topMenuDef, enhancers, context2) => {
75641
- return topMenuDef.map((topLevelItem) => {
75642
- const def = __spreadValues({}, topLevelItem);
75643
- if (def.submenu) {
75644
- def.submenu = def.submenu.map((subdef, index2) => /* @__PURE__ */ React__default.createElement(DynamicMenuItem, __spreadValues({ key: index2, def: subdef }, { enhancers, context: context2 })));
75645
- }
75646
- return def;
75647
- });
75648
- }, "createDynamicBarMenu");
75649
- const createCommandMenu = /* @__PURE__ */ __name((menuDef, commands, config, context2) => {
75650
- return createDynamicMenu(
75651
- menuDef,
75652
- [commandMenuEnhancer(commands, config)],
75653
- context2
75654
- );
75655
- }, "createCommandMenu");
75656
- const createCommandBarMenu = /* @__PURE__ */ __name((menuDef, commands, config, context2) => {
75657
- return createDynamicBarMenu(
75658
- menuDef,
75659
- [commandMenuEnhancer(commands, config)],
75660
- context2
75661
- );
75662
- }, "createCommandBarMenu");
75663
- function showCommandContextMenu(menuDef, commands, config, event, onClose, context2) {
75664
- return showContextMenu(
75665
- menuDef,
75666
- [commandMenuEnhancer(commands, config)],
75667
- event,
75668
- onClose,
75669
- context2
75670
- );
75671
- }
75672
- __name(showCommandContextMenu, "showCommandContextMenu");
75673
- const createMenu = createDynamicMenu;
75674
- function showContextMenu(menuDef, enhancers, event, onClose, context2, menuComp = Menu) {
75675
- menuDef = filterMenuForCorrectness(menuDef);
75676
- if (!menuDef) return;
75677
- const MenuComponent = menuComp;
75678
- event.persist && event.persist();
75679
- ContextMenu.show(
75680
- /* @__PURE__ */ React__default.createElement(MenuComponent, null, createDynamicMenu(menuDef, enhancers, context2)),
75681
- { left: event.clientX, top: event.clientY },
75682
- onClose
75683
- );
75684
- event.stopPropagation && event.stopPropagation();
75685
- event.preventDefault && event.preventDefault();
75686
- }
75687
- __name(showContextMenu, "showContextMenu");
75688
- function filterMenuForCorrectness(menuDef) {
75689
- return menuDef && menuDef.length && menuDef.filter(ident);
75690
- }
75691
- __name(filterMenuForCorrectness, "filterMenuForCorrectness");
75692
- function getStringFromReactComponent(comp) {
75693
- var _a;
75694
- if (!comp) return "";
75695
- if (isString$1(comp) || isNumber$1(comp)) return comp;
75696
- if ((_a = comp.props) == null ? void 0 : _a.text) {
75697
- return getStringFromReactComponent(comp.props.text);
75698
- }
75699
- const { children } = comp.props || {};
75700
- if (!children) return "";
75701
- if (isArray$2(children))
75702
- return flatMap(children, getStringFromReactComponent).join("");
75703
- if (isString$1(children)) return children;
75704
- if (children.props) {
75705
- return getStringFromReactComponent(children.props);
75706
- }
75707
- }
75708
- __name(getStringFromReactComponent, "getStringFromReactComponent");
75709
- function doesSearchValMatchText(searchVal, justText) {
75710
- return fuzzysearch(
75711
- searchVal ? searchVal.toLowerCase() : "",
75712
- justText ? justText.toLowerCase() : ""
75713
- );
75714
- }
75715
- __name(doesSearchValMatchText, "doesSearchValMatchText");
75716
- const MenuItemWithTooltip = /* @__PURE__ */ __name((_Q) => {
75717
- var _R = _Q, { tooltip } = _R, rest = __objRest(_R, ["tooltip"]);
75718
- let out = /* @__PURE__ */ React__default.createElement(MenuItem, __spreadValues({}, rest));
75719
- if (tooltip) {
75720
- out = /* @__PURE__ */ React__default.createElement(Tooltip, { content: tooltip }, out);
75721
- }
75722
- return out;
75723
- }, "MenuItemWithTooltip");
75724
75880
  function comboToLabel(def, useSymbols = true) {
75725
75881
  const combo = typeof def === "string" ? def : def.combo;
75726
75882
  if (useSymbols) {
@@ -78148,6 +78304,7 @@ export {
78148
78304
  DateInputField,
78149
78305
  DateRangeInputField,
78150
78306
  DialogFooter,
78307
+ DividerWithText,
78151
78308
  DropdownButton,
78152
78309
  DynamicMenuItem,
78153
78310
  EditableTextField,