@plasmicpkgs/plasmic-rich-components 1.0.118 → 1.0.119

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,10 +3,12 @@
3
3
  var registerComponent = require('@plasmicapp/host/registerComponent');
4
4
  require('@plasmicapp/host/registerGlobalContext');
5
5
  var React = require('react');
6
+ var dayjs = require('dayjs');
7
+ var customParseFormat = require('dayjs/plugin/customParseFormat');
8
+ var luxon = require('luxon');
6
9
  var antd = require('antd');
7
10
  require('lodash/get');
8
11
  var dataSources = require('@plasmicapp/data-sources');
9
- var luxon = require('luxon');
10
12
  var tinycolor = require('@ctrl/tinycolor');
11
13
  var icons = require('@ant-design/icons');
12
14
  var proComponents = require('@ant-design/pro-components');
@@ -15,11 +17,14 @@ var csvWriterBrowser = require('csv-writer-browser');
15
17
  var fastStringify = require('fast-stringify');
16
18
  var classNames = require('classnames');
17
19
  var groupBy = require('lodash/groupBy');
20
+ var lodash = require('lodash');
18
21
 
19
22
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
20
23
 
21
24
  var registerComponent__default = /*#__PURE__*/_interopDefault(registerComponent);
22
25
  var React__default = /*#__PURE__*/_interopDefault(React);
26
+ var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
27
+ var customParseFormat__default = /*#__PURE__*/_interopDefault(customParseFormat);
23
28
  var fastStringify__default = /*#__PURE__*/_interopDefault(fastStringify);
24
29
  var classNames__default = /*#__PURE__*/_interopDefault(classNames);
25
30
  var groupBy__default = /*#__PURE__*/_interopDefault(groupBy);
@@ -45,9 +50,65 @@ function maybe(x, f) {
45
50
  return void 0;
46
51
  return f(x);
47
52
  }
53
+ function isValidIsoDate(str, extendedOnly = false) {
54
+ if (!str)
55
+ return false;
56
+ if (typeof str !== "string")
57
+ return false;
58
+ if (str.includes(" "))
59
+ return false;
60
+ if (str.length === 10) {
61
+ if (extendedOnly)
62
+ return false;
63
+ dayjs__default.default.extend(customParseFormat__default.default);
64
+ return dayjs__default.default(str, "YYYY-MM-DD", true).isValid();
65
+ }
66
+ if (!dayjs__default.default(str).isValid())
67
+ return false;
68
+ if (isNaN(new Date(str).getTime()))
69
+ return false;
70
+ return true;
71
+ }
72
+ function parseDate(value) {
73
+ const dateTimeParsers = [
74
+ luxon.DateTime.fromISO,
75
+ luxon.DateTime.fromRFC2822,
76
+ luxon.DateTime.fromHTTP,
77
+ luxon.DateTime.fromSQL
78
+ ];
79
+ if (!value)
80
+ return void 0;
81
+ if (typeof value !== "string")
82
+ return void 0;
83
+ for (const parser of dateTimeParsers) {
84
+ const parsed = parser(value);
85
+ if (parsed.isValid) {
86
+ return parsed;
87
+ }
88
+ }
89
+ return void 0;
90
+ }
91
+ function isLikeDate(value) {
92
+ const parsed = parseDate(value);
93
+ return parsed ? true : false;
94
+ }
48
95
  function isLikeImage(value) {
49
96
  return typeof value === "string" ? value.match(/\.(png|jpg|jpeg|gif|svg|webp|avif|ico|bmp|tiff)$/i) : false;
50
97
  }
98
+ function isLikeColor(value) {
99
+ if (typeof value !== "string")
100
+ return false;
101
+ const hex = /^#?([0-9a-fA-F]{3}([0-9a-fA-F]{3})?|[0-9a-fA-F]{4}([0-9a-fA-F]{4})?)$/;
102
+ const rgba = /^rgba?\((\s*\d+\s*,\s*\d+\s*,\s*\d+\s*(,\s*(1|0?(\.\d+)?))?\s*)\)$/;
103
+ const cssNamed = /^(aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen)$/;
104
+ const hsla = /^hsla?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
105
+ const cmyk = /^cmyka?\((\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
106
+ const hsv = /^hsva?\((\s*\d+(\.\d+)?\s*,\s*\d+(\.\d+)?%\s*,\s*\d+(\.\d+)?%\s*(,\s*(1|0?\.\d+))?\s*)\)$/;
107
+ if (value.match(hex) || value.match(rgba) || value.match(cssNamed) || value.match(hsla) || value.match(cmyk) || value.match(hsv)) {
108
+ return true;
109
+ }
110
+ return false;
111
+ }
51
112
  function isInteractable(target) {
52
113
  if (["A", "BUTTON", "INPUT", "TEXTAREA", "SELECT"].includes(target.tagName)) {
53
114
  return true;
@@ -95,33 +156,33 @@ class ErrorBoundary extends React__default.default.Component {
95
156
  }
96
157
  }
97
158
 
98
- var __defProp$9 = Object.defineProperty;
99
- var __defProps$7 = Object.defineProperties;
100
- var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
101
- var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
102
- var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
103
- var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
104
- var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
105
- var __spreadValues$9 = (a, b) => {
159
+ var __defProp$b = Object.defineProperty;
160
+ var __defProps$8 = Object.defineProperties;
161
+ var __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;
162
+ var __getOwnPropSymbols$b = Object.getOwnPropertySymbols;
163
+ var __hasOwnProp$b = Object.prototype.hasOwnProperty;
164
+ var __propIsEnum$b = Object.prototype.propertyIsEnumerable;
165
+ var __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
166
+ var __spreadValues$b = (a, b) => {
106
167
  for (var prop in b || (b = {}))
107
- if (__hasOwnProp$9.call(b, prop))
108
- __defNormalProp$9(a, prop, b[prop]);
109
- if (__getOwnPropSymbols$9)
110
- for (var prop of __getOwnPropSymbols$9(b)) {
111
- if (__propIsEnum$9.call(b, prop))
112
- __defNormalProp$9(a, prop, b[prop]);
168
+ if (__hasOwnProp$b.call(b, prop))
169
+ __defNormalProp$b(a, prop, b[prop]);
170
+ if (__getOwnPropSymbols$b)
171
+ for (var prop of __getOwnPropSymbols$b(b)) {
172
+ if (__propIsEnum$b.call(b, prop))
173
+ __defNormalProp$b(a, prop, b[prop]);
113
174
  }
114
175
  return a;
115
176
  };
116
- var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
117
- var __objRest$2 = (source, exclude) => {
177
+ var __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));
178
+ var __objRest$3 = (source, exclude) => {
118
179
  var target = {};
119
180
  for (var prop in source)
120
- if (__hasOwnProp$9.call(source, prop) && exclude.indexOf(prop) < 0)
181
+ if (__hasOwnProp$b.call(source, prop) && exclude.indexOf(prop) < 0)
121
182
  target[prop] = source[prop];
122
- if (source != null && __getOwnPropSymbols$9)
123
- for (var prop of __getOwnPropSymbols$9(source)) {
124
- if (exclude.indexOf(prop) < 0 && __propIsEnum$9.call(source, prop))
183
+ if (source != null && __getOwnPropSymbols$b)
184
+ for (var prop of __getOwnPropSymbols$b(source)) {
185
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$b.call(source, prop))
125
186
  target[prop] = source[prop];
126
187
  }
127
188
  return target;
@@ -157,7 +218,7 @@ function deriveValueType(cconfig) {
157
218
  const NoneField = "||NoneField||";
158
219
  const CustomField = "";
159
220
  function getFieldSubprops(opts) {
160
- return __spreadValues$9(__spreadValues$9({
221
+ return __spreadValues$b(__spreadValues$b({
161
222
  key: {
162
223
  type: "string",
163
224
  hidden: () => true
@@ -193,7 +254,7 @@ function getFieldSubprops(opts) {
193
254
  defaultValueHint: getDefaultValueHint("title"),
194
255
  hidden: () => !!opts.noTitle
195
256
  },
196
- expr: __spreadProps$7(__spreadValues$9({}, rowDataType("Custom value")), {
257
+ expr: __spreadProps$8(__spreadValues$b({}, rowDataType("Custom value")), {
197
258
  hidden: (ps, ctx, { item, path: _controlPath }) => {
198
259
  return false;
199
260
  }
@@ -471,7 +532,7 @@ function buildFieldsPropType(_a) {
471
532
  advanced,
472
533
  displayName,
473
534
  minimalValue = (_props, contextData) => contextData == null ? void 0 : contextData.minimalFullLengthFields
474
- } = _b, opts = __objRest$2(_b, [
535
+ } = _b, opts = __objRest$3(_b, [
475
536
  "advanced",
476
537
  "displayName",
477
538
  "minimalValue"
@@ -505,25 +566,25 @@ function buildFieldsPropType(_a) {
505
566
  };
506
567
  }
507
568
 
508
- var __defProp$8 = Object.defineProperty;
509
- var __defProps$6 = Object.defineProperties;
510
- var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
511
- var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
512
- var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
513
- var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
514
- var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
515
- var __spreadValues$8 = (a, b) => {
569
+ var __defProp$a = Object.defineProperty;
570
+ var __defProps$7 = Object.defineProperties;
571
+ var __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;
572
+ var __getOwnPropSymbols$a = Object.getOwnPropertySymbols;
573
+ var __hasOwnProp$a = Object.prototype.hasOwnProperty;
574
+ var __propIsEnum$a = Object.prototype.propertyIsEnumerable;
575
+ var __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
576
+ var __spreadValues$a = (a, b) => {
516
577
  for (var prop in b || (b = {}))
517
- if (__hasOwnProp$8.call(b, prop))
518
- __defNormalProp$8(a, prop, b[prop]);
519
- if (__getOwnPropSymbols$8)
520
- for (var prop of __getOwnPropSymbols$8(b)) {
521
- if (__propIsEnum$8.call(b, prop))
522
- __defNormalProp$8(a, prop, b[prop]);
578
+ if (__hasOwnProp$a.call(b, prop))
579
+ __defNormalProp$a(a, prop, b[prop]);
580
+ if (__getOwnPropSymbols$a)
581
+ for (var prop of __getOwnPropSymbols$a(b)) {
582
+ if (__propIsEnum$a.call(b, prop))
583
+ __defNormalProp$a(a, prop, b[prop]);
523
584
  }
524
585
  return a;
525
586
  };
526
- var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
587
+ var __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));
527
588
  function multiRenderValue(record, cconfigs) {
528
589
  return cconfigs == null ? void 0 : cconfigs.flatMap(
529
590
  (cc) => cc.isHidden ? [] : [` \u2022 `, /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, renderValue(record, cc))]
@@ -539,6 +600,11 @@ function getFieldValue(record, cconfig) {
539
600
  }
540
601
  return value;
541
602
  }
603
+ function getFieldAggregateValue(record, cconfigs, separator = ", ") {
604
+ if (!(cconfigs == null ? void 0 : cconfigs.length))
605
+ return void 0;
606
+ return (cconfigs == null ? void 0 : cconfigs.length) ? cconfigs.map((item) => getFieldValue(record, item)).join(separator) : void 0;
607
+ }
542
608
  function renderValue(record, cconfig) {
543
609
  const value = getFieldValue(record, cconfig);
544
610
  if (value == null) {
@@ -592,11 +658,11 @@ function renderNumber(value, cconfig) {
592
658
  if (cconfig.dataType === "number") {
593
659
  return new Intl.NumberFormat(cconfig.locale, cconfig).format(value);
594
660
  } else if (cconfig.dataType === "percent") {
595
- return new Intl.NumberFormat(cconfig.locale, __spreadProps$6(__spreadValues$8({}, cconfig), {
661
+ return new Intl.NumberFormat(cconfig.locale, __spreadProps$7(__spreadValues$a({}, cconfig), {
596
662
  style: "percent"
597
663
  })).format(value);
598
664
  } else if (cconfig.dataType === "currency") {
599
- return new Intl.NumberFormat(cconfig.locale, __spreadProps$6(__spreadValues$8(__spreadValues$8({}, DEFAULT_CURRENCY_SETTINGS), cconfig), {
665
+ return new Intl.NumberFormat(cconfig.locale, __spreadProps$7(__spreadValues$a(__spreadValues$a({}, DEFAULT_CURRENCY_SETTINGS), cconfig), {
600
666
  style: "currency"
601
667
  })).format(value);
602
668
  } else {
@@ -604,7 +670,7 @@ function renderNumber(value, cconfig) {
604
670
  }
605
671
  }
606
672
  function renderDate(value, cconfig) {
607
- const opts = __spreadValues$8(__spreadValues$8({}, DEFAULT_DATETIME_SETTINGS), cconfig);
673
+ const opts = __spreadValues$a(__spreadValues$a({}, DEFAULT_DATETIME_SETTINGS), cconfig);
608
674
  if (opts.dateStyle === "none") {
609
675
  delete opts["dateStyle"];
610
676
  }
@@ -628,7 +694,7 @@ const UNIT_TO_MS = {
628
694
  const UNITS_BY_MS = Object.keys(UNIT_TO_MS);
629
695
  function renderRelativeDate(value, cconfig) {
630
696
  var _a;
631
- const opts = __spreadValues$8(__spreadValues$8({}, DEFAULT_RELATIVE_DATETIME_SETTINGS), cconfig);
697
+ const opts = __spreadValues$a(__spreadValues$a({}, DEFAULT_RELATIVE_DATETIME_SETTINGS), cconfig);
632
698
  const unit = (_a = cconfig.unit) != null ? _a : "day";
633
699
  const formatter = new Intl.RelativeTimeFormat(cconfig.locale, opts);
634
700
  if (isOneOf(unit, UNITS_BY_MS)) {
@@ -658,12 +724,6 @@ function renderBoolean(value, cconfig) {
658
724
  return value ? "true" : "false";
659
725
  }
660
726
  }
661
- const dateTimeParsers = [
662
- luxon.DateTime.fromISO,
663
- luxon.DateTime.fromRFC2822,
664
- luxon.DateTime.fromHTTP,
665
- luxon.DateTime.fromSQL
666
- ];
667
727
  const CANNOT_COERCE = Symbol("plasmic-cannot-coerce");
668
728
  function coerceValue(value, dataType) {
669
729
  if (value == null) {
@@ -685,11 +745,9 @@ function coerceValue(value, dataType) {
685
745
  } else if (typeof value === "number") {
686
746
  return new Date(value);
687
747
  } else if (typeof value === "string") {
688
- for (const parser of dateTimeParsers) {
689
- const parsed = parser(value);
690
- if (parsed.isValid) {
691
- return parsed.toJSDate();
692
- }
748
+ const parsed = parseDate(value);
749
+ if (parsed) {
750
+ return parsed.toJSDate();
693
751
  }
694
752
  }
695
753
  } else if (dataType === "boolean") {
@@ -725,25 +783,25 @@ function asString(value) {
725
783
  }
726
784
  }
727
785
 
728
- var __defProp$7 = Object.defineProperty;
729
- var __defProps$5 = Object.defineProperties;
730
- var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
731
- var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
732
- var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
733
- var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
734
- var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
735
- var __spreadValues$7 = (a, b) => {
786
+ var __defProp$9 = Object.defineProperty;
787
+ var __defProps$6 = Object.defineProperties;
788
+ var __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;
789
+ var __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;
790
+ var __hasOwnProp$9 = Object.prototype.hasOwnProperty;
791
+ var __propIsEnum$9 = Object.prototype.propertyIsEnumerable;
792
+ var __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
793
+ var __spreadValues$9 = (a, b) => {
736
794
  for (var prop in b || (b = {}))
737
- if (__hasOwnProp$7.call(b, prop))
738
- __defNormalProp$7(a, prop, b[prop]);
739
- if (__getOwnPropSymbols$7)
740
- for (var prop of __getOwnPropSymbols$7(b)) {
741
- if (__propIsEnum$7.call(b, prop))
742
- __defNormalProp$7(a, prop, b[prop]);
795
+ if (__hasOwnProp$9.call(b, prop))
796
+ __defNormalProp$9(a, prop, b[prop]);
797
+ if (__getOwnPropSymbols$9)
798
+ for (var prop of __getOwnPropSymbols$9(b)) {
799
+ if (__propIsEnum$9.call(b, prop))
800
+ __defNormalProp$9(a, prop, b[prop]);
743
801
  }
744
802
  return a;
745
803
  };
746
- var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
804
+ var __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));
747
805
  function RichDetails(props) {
748
806
  var _a;
749
807
  const {
@@ -786,7 +844,7 @@ function useColumnDefinitions$1(data, props) {
786
844
  const { mergedFields, minimalFullLengthFields } = dataSources.deriveFieldConfigs(
787
845
  fields != null ? fields : [],
788
846
  schema,
789
- (field) => __spreadValues$7({
847
+ (field) => __spreadValues$9({
790
848
  key: mkShortId(),
791
849
  isHidden: false,
792
850
  dataType: "auto"
@@ -797,7 +855,7 @@ function useColumnDefinitions$1(data, props) {
797
855
  expr: (currentItem) => currentItem[field.id]
798
856
  })
799
857
  );
800
- setControlContextData == null ? void 0 : setControlContextData(__spreadProps$5(__spreadValues$7({}, data), { mergedFields, minimalFullLengthFields }));
858
+ setControlContextData == null ? void 0 : setControlContextData(__spreadProps$6(__spreadValues$9({}, data), { mergedFields, minimalFullLengthFields }));
801
859
  const normalized = mergedFields;
802
860
  const columnDefinitions = normalized.filter((cconfig) => !cconfig.isHidden).map((cconfig, _columnIndex, _columnsArray) => {
803
861
  const columnDefinition = {
@@ -890,56 +948,56 @@ function isLight(color) {
890
948
  return r * 0.299 + g * 0.587 + b * 0.114 > 186;
891
949
  }
892
950
 
893
- var __defProp$6 = Object.defineProperty;
894
- var __defProps$4 = Object.defineProperties;
895
- var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
896
- var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
897
- var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
898
- var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
899
- var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
900
- var __spreadValues$6 = (a, b) => {
951
+ var __defProp$8 = Object.defineProperty;
952
+ var __defProps$5 = Object.defineProperties;
953
+ var __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;
954
+ var __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;
955
+ var __hasOwnProp$8 = Object.prototype.hasOwnProperty;
956
+ var __propIsEnum$8 = Object.prototype.propertyIsEnumerable;
957
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
958
+ var __spreadValues$8 = (a, b) => {
901
959
  for (var prop in b || (b = {}))
902
- if (__hasOwnProp$6.call(b, prop))
903
- __defNormalProp$6(a, prop, b[prop]);
904
- if (__getOwnPropSymbols$6)
905
- for (var prop of __getOwnPropSymbols$6(b)) {
906
- if (__propIsEnum$6.call(b, prop))
907
- __defNormalProp$6(a, prop, b[prop]);
960
+ if (__hasOwnProp$8.call(b, prop))
961
+ __defNormalProp$8(a, prop, b[prop]);
962
+ if (__getOwnPropSymbols$8)
963
+ for (var prop of __getOwnPropSymbols$8(b)) {
964
+ if (__propIsEnum$8.call(b, prop))
965
+ __defNormalProp$8(a, prop, b[prop]);
908
966
  }
909
967
  return a;
910
968
  };
911
- var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
969
+ var __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));
912
970
  const AnchorLink = React__default.default.forwardRef(function AnchorLink2(props, ref) {
913
- return /* @__PURE__ */ React__default.default.createElement("a", __spreadProps$4(__spreadValues$6({}, props), { ref }));
971
+ return /* @__PURE__ */ React__default.default.createElement("a", __spreadProps$5(__spreadValues$8({}, props), { ref }));
914
972
  });
915
973
 
916
- var __defProp$5 = Object.defineProperty;
917
- var __defProps$3 = Object.defineProperties;
918
- var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
919
- var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
920
- var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
921
- var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
922
- var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
923
- var __spreadValues$5 = (a, b) => {
974
+ var __defProp$7 = Object.defineProperty;
975
+ var __defProps$4 = Object.defineProperties;
976
+ var __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;
977
+ var __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;
978
+ var __hasOwnProp$7 = Object.prototype.hasOwnProperty;
979
+ var __propIsEnum$7 = Object.prototype.propertyIsEnumerable;
980
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
981
+ var __spreadValues$7 = (a, b) => {
924
982
  for (var prop in b || (b = {}))
925
- if (__hasOwnProp$5.call(b, prop))
926
- __defNormalProp$5(a, prop, b[prop]);
927
- if (__getOwnPropSymbols$5)
928
- for (var prop of __getOwnPropSymbols$5(b)) {
929
- if (__propIsEnum$5.call(b, prop))
930
- __defNormalProp$5(a, prop, b[prop]);
983
+ if (__hasOwnProp$7.call(b, prop))
984
+ __defNormalProp$7(a, prop, b[prop]);
985
+ if (__getOwnPropSymbols$7)
986
+ for (var prop of __getOwnPropSymbols$7(b)) {
987
+ if (__propIsEnum$7.call(b, prop))
988
+ __defNormalProp$7(a, prop, b[prop]);
931
989
  }
932
990
  return a;
933
991
  };
934
- var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
935
- var __objRest$1 = (source, exclude) => {
992
+ var __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));
993
+ var __objRest$2 = (source, exclude) => {
936
994
  var target = {};
937
995
  for (var prop in source)
938
- if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)
996
+ if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)
939
997
  target[prop] = source[prop];
940
- if (source != null && __getOwnPropSymbols$5)
941
- for (var prop of __getOwnPropSymbols$5(source)) {
942
- if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))
998
+ if (source != null && __getOwnPropSymbols$7)
999
+ for (var prop of __getOwnPropSymbols$7(source)) {
1000
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))
943
1001
  target[prop] = source[prop];
944
1002
  }
945
1003
  return target;
@@ -950,7 +1008,7 @@ function omitUndefined(x) {
950
1008
  );
951
1009
  }
952
1010
  function processNavItems(navMenuItems) {
953
- return navMenuItems.filter((item) => item.condition === void 0 || item.condition).map((item) => __spreadProps$3(__spreadValues$5({}, item), {
1011
+ return navMenuItems.filter((item) => item.condition === void 0 || item.condition).map((item) => __spreadProps$4(__spreadValues$7({}, item), {
954
1012
  // We fill a default path because otherwise the item doesn't appear at all.
955
1013
  path: item.path || "/",
956
1014
  routes: item.routes ? processNavItems(item.routes) : void 0
@@ -982,7 +1040,7 @@ function RichLayout(_a) {
982
1040
  simpleNavTheme,
983
1041
  logo,
984
1042
  logoElement
985
- } = _b, layoutProps = __objRest$1(_b, [
1043
+ } = _b, layoutProps = __objRest$2(_b, [
986
1044
  "children",
987
1045
  "navMenuItems",
988
1046
  "rootUrl",
@@ -1051,7 +1109,7 @@ function RichLayout(_a) {
1051
1109
  };
1052
1110
  return /* @__PURE__ */ React__default.default.createElement("div", { className, style: { display: "flex" } }, /* @__PURE__ */ React__default.default.createElement("style", null, baseStyles), /* @__PURE__ */ React__default.default.createElement(
1053
1111
  proComponents.ProLayout,
1054
- __spreadProps$3(__spreadValues$5({}, layoutProps), {
1112
+ __spreadProps$4(__spreadValues$7({}, layoutProps), {
1055
1113
  pageTitleRender: () => "",
1056
1114
  logo: logo != null ? logo : logoElement,
1057
1115
  headerRender: (_props, defaultDom) => /* @__PURE__ */ React__default.default.createElement(
@@ -1062,7 +1120,7 @@ function RichLayout(_a) {
1062
1120
  /* @__PURE__ */ React__default.default.createElement(proComponents.ProConfigProvider, { dark: !isNavBgLight }, defaultDom)
1063
1121
  ),
1064
1122
  token: {
1065
- header: omitUndefined(__spreadValues$5({
1123
+ header: omitUndefined(__spreadValues$7({
1066
1124
  colorBgHeader: navBgColor
1067
1125
  }, layoutColorOverrides)),
1068
1126
  // Ideally, we'd do something similar to headerRender above, and just specify general dark mode to specify
@@ -1132,19 +1190,19 @@ function RichLayout(_a) {
1132
1190
  ));
1133
1191
  }
1134
1192
 
1135
- var __defProp$4 = Object.defineProperty;
1136
- var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
1137
- var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
1138
- var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
1139
- var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1140
- var __spreadValues$4 = (a, b) => {
1193
+ var __defProp$6 = Object.defineProperty;
1194
+ var __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;
1195
+ var __hasOwnProp$6 = Object.prototype.hasOwnProperty;
1196
+ var __propIsEnum$6 = Object.prototype.propertyIsEnumerable;
1197
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1198
+ var __spreadValues$6 = (a, b) => {
1141
1199
  for (var prop in b || (b = {}))
1142
- if (__hasOwnProp$4.call(b, prop))
1143
- __defNormalProp$4(a, prop, b[prop]);
1144
- if (__getOwnPropSymbols$4)
1145
- for (var prop of __getOwnPropSymbols$4(b)) {
1146
- if (__propIsEnum$4.call(b, prop))
1147
- __defNormalProp$4(a, prop, b[prop]);
1200
+ if (__hasOwnProp$6.call(b, prop))
1201
+ __defNormalProp$6(a, prop, b[prop]);
1202
+ if (__getOwnPropSymbols$6)
1203
+ for (var prop of __getOwnPropSymbols$6(b)) {
1204
+ if (__propIsEnum$6.call(b, prop))
1205
+ __defNormalProp$6(a, prop, b[prop]);
1148
1206
  }
1149
1207
  return a;
1150
1208
  };
@@ -1157,7 +1215,7 @@ function generateNavMenuType(isNested, remainingDepth, displayName, defaultValue
1157
1215
  itemType: {
1158
1216
  type: "object",
1159
1217
  nameFunc: (item) => item.name || (!displayName ? "Unnamed nested item" : "Unnamed item"),
1160
- fields: __spreadValues$4({
1218
+ fields: __spreadValues$6({
1161
1219
  path: "href",
1162
1220
  name: "string",
1163
1221
  condition: {
@@ -1436,25 +1494,25 @@ function renderActions(rowActions, row, data, rowKey) {
1436
1494
  });
1437
1495
  }
1438
1496
 
1439
- var __defProp$3 = Object.defineProperty;
1440
- var __defProps$2 = Object.defineProperties;
1441
- var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
1442
- var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
1443
- var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
1444
- var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
1445
- var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1446
- var __spreadValues$3 = (a, b) => {
1497
+ var __defProp$5 = Object.defineProperty;
1498
+ var __defProps$3 = Object.defineProperties;
1499
+ var __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;
1500
+ var __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;
1501
+ var __hasOwnProp$5 = Object.prototype.hasOwnProperty;
1502
+ var __propIsEnum$5 = Object.prototype.propertyIsEnumerable;
1503
+ var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1504
+ var __spreadValues$5 = (a, b) => {
1447
1505
  for (var prop in b || (b = {}))
1448
- if (__hasOwnProp$3.call(b, prop))
1449
- __defNormalProp$3(a, prop, b[prop]);
1450
- if (__getOwnPropSymbols$3)
1451
- for (var prop of __getOwnPropSymbols$3(b)) {
1452
- if (__propIsEnum$3.call(b, prop))
1453
- __defNormalProp$3(a, prop, b[prop]);
1506
+ if (__hasOwnProp$5.call(b, prop))
1507
+ __defNormalProp$5(a, prop, b[prop]);
1508
+ if (__getOwnPropSymbols$5)
1509
+ for (var prop of __getOwnPropSymbols$5(b)) {
1510
+ if (__propIsEnum$5.call(b, prop))
1511
+ __defNormalProp$5(a, prop, b[prop]);
1454
1512
  }
1455
1513
  return a;
1456
1514
  };
1457
- var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1515
+ var __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));
1458
1516
  function RichTable(props) {
1459
1517
  const {
1460
1518
  className,
@@ -1499,7 +1557,7 @@ function RichTable(props) {
1499
1557
  }
1500
1558
  return /* @__PURE__ */ React__default.default.createElement("div", { className: `${className} ${scopeClassName != null ? scopeClassName : ""}` }, /* @__PURE__ */ React__default.default.createElement(ErrorBoundary, { canvasEnvId: props["data-plasmic-canvas-envs"] }, /* @__PURE__ */ React__default.default.createElement(
1501
1559
  proComponents.ProTable,
1502
- __spreadProps$2(__spreadValues$3({
1560
+ __spreadProps$3(__spreadValues$5({
1503
1561
  ErrorBoundary: false,
1504
1562
  rowClassName: props.onRowClick || props.canSelectRows === "click" ? "plasmic-table-row-clickable" : void 0,
1505
1563
  actionRef,
@@ -1623,7 +1681,7 @@ function RichTable(props) {
1623
1681
  }
1624
1682
  ));
1625
1683
  }
1626
- const defaultColumnConfig$1 = () => ({
1684
+ const defaultColumnConfig$2 = () => ({
1627
1685
  key: mkShortId(),
1628
1686
  isEditableExpr: () => false,
1629
1687
  disableSorting: false,
@@ -1643,13 +1701,13 @@ function useColumnDefinitions(data, props) {
1643
1701
  if (!data || !schema) {
1644
1702
  return { normalized: [], columnDefinitions: [] };
1645
1703
  }
1646
- const { mergedFields, minimalFullLengthFields } = dataSources.deriveFieldConfigs(fields != null ? fields : [], schema, (field) => __spreadValues$3(__spreadValues$3({}, defaultColumnConfig$1()), field && {
1704
+ const { mergedFields, minimalFullLengthFields } = dataSources.deriveFieldConfigs(fields != null ? fields : [], schema, (field) => __spreadValues$5(__spreadValues$5({}, defaultColumnConfig$2()), field && {
1647
1705
  key: field.id,
1648
1706
  fieldId: field.id,
1649
1707
  title: field.label || field.id,
1650
1708
  expr: (currentItem) => currentItem[field.id]
1651
1709
  }));
1652
- setControlContextData == null ? void 0 : setControlContextData(__spreadProps$2(__spreadValues$3({}, data), { mergedFields, minimalFullLengthFields }));
1710
+ setControlContextData == null ? void 0 : setControlContextData(__spreadProps$3(__spreadValues$5({}, data), { mergedFields, minimalFullLengthFields }));
1653
1711
  const normalized = mergedFields;
1654
1712
  const columnDefinitions = normalized.filter((cconfig) => !cconfig.isHidden).map((cconfig, _columnIndex, _columnsArray) => {
1655
1713
  const columnDefinition = {
@@ -1717,7 +1775,7 @@ function useRowSelectionProps(data, props) {
1717
1775
  return [];
1718
1776
  }
1719
1777
  };
1720
- const rowSelection = canSelectRows && canSelectRows !== "none" ? __spreadValues$3({
1778
+ const rowSelection = canSelectRows && canSelectRows !== "none" ? __spreadValues$5({
1721
1779
  type: canSelectRows === "single" || canSelectRows === "click" ? "radio" : "checkbox",
1722
1780
  selectedRowKeys: deriveSelectedRowKeys(),
1723
1781
  onChange: (rowKeys, rows) => {
@@ -1807,6 +1865,44 @@ function ExportMenu(props) {
1807
1865
  );
1808
1866
  }
1809
1867
 
1868
+ function roleProp({
1869
+ role,
1870
+ singular = false,
1871
+ advanced = false,
1872
+ displayName
1873
+ }) {
1874
+ return singular ? {
1875
+ type: "object",
1876
+ displayName: displayName || `${capitalize(role)} field`,
1877
+ advanced,
1878
+ hidden: (ps) => !ps.data,
1879
+ nameFunc: (item) => maybe(
1880
+ item,
1881
+ (i) => i.isHidden ? "Hidden" : i.fieldId || "Custom value"
1882
+ ),
1883
+ fields: getFieldSubprops({
1884
+ canChangeField: true,
1885
+ noTitle: true
1886
+ }),
1887
+ defaultValueHint: (_props, contextData) => {
1888
+ var _a;
1889
+ return ((_a = contextData == null ? void 0 : contextData.minimalFullLengthFields) != null ? _a : []).find(
1890
+ (f) => f.role === role
1891
+ );
1892
+ }
1893
+ } : buildFieldsPropType({
1894
+ displayName: displayName || `${capitalize(role)} fields`,
1895
+ advanced,
1896
+ noTitle: true,
1897
+ canChangeField: true,
1898
+ minimalValue: (_props, contextData) => {
1899
+ var _a;
1900
+ return ((_a = contextData == null ? void 0 : contextData.minimalFullLengthFields) != null ? _a : []).filter(
1901
+ (f) => f.role === role
1902
+ );
1903
+ }
1904
+ });
1905
+ }
1810
1906
  function dataProp() {
1811
1907
  return {
1812
1908
  type: "dataSourceOpData",
@@ -1896,25 +1992,25 @@ function onRowClickProp() {
1896
1992
  };
1897
1993
  }
1898
1994
 
1899
- var __defProp$2 = Object.defineProperty;
1900
- var __defProps$1 = Object.defineProperties;
1901
- var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
1902
- var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
1903
- var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
1904
- var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
1905
- var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
1906
- var __spreadValues$2 = (a, b) => {
1995
+ var __defProp$4 = Object.defineProperty;
1996
+ var __defProps$2 = Object.defineProperties;
1997
+ var __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;
1998
+ var __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;
1999
+ var __hasOwnProp$4 = Object.prototype.hasOwnProperty;
2000
+ var __propIsEnum$4 = Object.prototype.propertyIsEnumerable;
2001
+ var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2002
+ var __spreadValues$4 = (a, b) => {
1907
2003
  for (var prop in b || (b = {}))
1908
- if (__hasOwnProp$2.call(b, prop))
1909
- __defNormalProp$2(a, prop, b[prop]);
1910
- if (__getOwnPropSymbols$2)
1911
- for (var prop of __getOwnPropSymbols$2(b)) {
1912
- if (__propIsEnum$2.call(b, prop))
1913
- __defNormalProp$2(a, prop, b[prop]);
2004
+ if (__hasOwnProp$4.call(b, prop))
2005
+ __defNormalProp$4(a, prop, b[prop]);
2006
+ if (__getOwnPropSymbols$4)
2007
+ for (var prop of __getOwnPropSymbols$4(b)) {
2008
+ if (__propIsEnum$4.call(b, prop))
2009
+ __defNormalProp$4(a, prop, b[prop]);
1914
2010
  }
1915
2011
  return a;
1916
2012
  };
1917
- var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2013
+ var __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));
1918
2014
  const tableHelpers = {
1919
2015
  states: {
1920
2016
  selectedRow: {
@@ -1947,7 +2043,7 @@ const dataTableMeta = {
1947
2043
  padding: "16px",
1948
2044
  maxHeight: "100%"
1949
2045
  },
1950
- props: __spreadProps$1(__spreadValues$2({
2046
+ props: __spreadProps$2(__spreadValues$4({
1951
2047
  data: dataProp(),
1952
2048
  fields: buildFieldsPropType({}),
1953
2049
  canSelectRows: {
@@ -2048,24 +2144,24 @@ const dataTableMeta = {
2048
2144
  }
2049
2145
  }),
2050
2146
  states: {
2051
- selectedRowKey: __spreadValues$2({
2147
+ selectedRowKey: __spreadValues$4({
2052
2148
  type: "writable",
2053
2149
  valueProp: "selectedRowKey",
2054
2150
  onChangeProp: "onRowSelectionChanged",
2055
2151
  variableType: "text"
2056
2152
  }, tableHelpers.states.selectedRowKey),
2057
- selectedRowKeys: __spreadValues$2({
2153
+ selectedRowKeys: __spreadValues$4({
2058
2154
  type: "writable",
2059
2155
  valueProp: "selectedRowKeys",
2060
2156
  onChangeProp: "onRowSelectionChanged",
2061
2157
  variableType: "array"
2062
2158
  }, tableHelpers.states.selectedRowKeys),
2063
- selectedRow: __spreadValues$2({
2159
+ selectedRow: __spreadValues$4({
2064
2160
  type: "readonly",
2065
2161
  onChangeProp: "onRowSelectionChanged",
2066
2162
  variableType: "object"
2067
2163
  }, tableHelpers.states.selectedRow),
2068
- selectedRows: __spreadValues$2({
2164
+ selectedRows: __spreadValues$4({
2069
2165
  type: "readonly",
2070
2166
  onChangeProp: "onRowSelectionChanged",
2071
2167
  variableType: "array"
@@ -2083,33 +2179,33 @@ function registerRichTable(loader) {
2083
2179
  registerComponentHelper(loader, RichTable, dataTableMeta);
2084
2180
  }
2085
2181
 
2086
- var __defProp$1 = Object.defineProperty;
2087
- var __defProps = Object.defineProperties;
2088
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
2089
- var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2090
- var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2091
- var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
2092
- var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2093
- var __spreadValues$1 = (a, b) => {
2182
+ var __defProp$3 = Object.defineProperty;
2183
+ var __defProps$1 = Object.defineProperties;
2184
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
2185
+ var __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;
2186
+ var __hasOwnProp$3 = Object.prototype.hasOwnProperty;
2187
+ var __propIsEnum$3 = Object.prototype.propertyIsEnumerable;
2188
+ var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2189
+ var __spreadValues$3 = (a, b) => {
2094
2190
  for (var prop in b || (b = {}))
2095
- if (__hasOwnProp$1.call(b, prop))
2096
- __defNormalProp$1(a, prop, b[prop]);
2097
- if (__getOwnPropSymbols$1)
2098
- for (var prop of __getOwnPropSymbols$1(b)) {
2099
- if (__propIsEnum$1.call(b, prop))
2100
- __defNormalProp$1(a, prop, b[prop]);
2191
+ if (__hasOwnProp$3.call(b, prop))
2192
+ __defNormalProp$3(a, prop, b[prop]);
2193
+ if (__getOwnPropSymbols$3)
2194
+ for (var prop of __getOwnPropSymbols$3(b)) {
2195
+ if (__propIsEnum$3.call(b, prop))
2196
+ __defNormalProp$3(a, prop, b[prop]);
2101
2197
  }
2102
2198
  return a;
2103
2199
  };
2104
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2105
- var __objRest = (source, exclude) => {
2200
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2201
+ var __objRest$1 = (source, exclude) => {
2106
2202
  var target = {};
2107
2203
  for (var prop in source)
2108
- if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
2204
+ if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)
2109
2205
  target[prop] = source[prop];
2110
- if (source != null && __getOwnPropSymbols$1)
2111
- for (var prop of __getOwnPropSymbols$1(source)) {
2112
- if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
2206
+ if (source != null && __getOwnPropSymbols$3)
2207
+ for (var prop of __getOwnPropSymbols$3(source)) {
2208
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))
2113
2209
  target[prop] = source[prop];
2114
2210
  }
2115
2211
  return target;
@@ -2187,7 +2283,7 @@ function RichList(props) {
2187
2283
  rowKey,
2188
2284
  pagination = true,
2189
2285
  onRowClick
2190
- } = _a; __objRest(_a, [
2286
+ } = _a; __objRest$1(_a, [
2191
2287
  "data",
2192
2288
  "type",
2193
2289
  "bordered",
@@ -2204,7 +2300,7 @@ function RichList(props) {
2204
2300
  "onRowClick"
2205
2301
  ]);
2206
2302
  const data = dataSources.normalizeData(rawData);
2207
- const { normalized, finalRoles: roleConfigs } = useRoleDefinitions(
2303
+ const { normalized, finalRoles: roleConfigs } = useRoleDefinitions$1(
2208
2304
  data,
2209
2305
  props
2210
2306
  );
@@ -2334,7 +2430,7 @@ function ListItemContent(_a) {
2334
2430
  afterTitle,
2335
2431
  content,
2336
2432
  bordered
2337
- } = _b, others = __objRest(_b, [
2433
+ } = _b, others = __objRest$1(_b, [
2338
2434
  "className",
2339
2435
  "title",
2340
2436
  "subtitle",
@@ -2348,7 +2444,7 @@ function ListItemContent(_a) {
2348
2444
  const classString = classNames__default.default(`${prefixCls}-item-meta`, className);
2349
2445
  return /* @__PURE__ */ React__default.default.createElement(
2350
2446
  "div",
2351
- __spreadProps(__spreadValues$1({}, others), {
2447
+ __spreadProps$1(__spreadValues$3({}, others), {
2352
2448
  className: classNames__default.default(
2353
2449
  {
2354
2450
  "plasmic-list-item-content--unbordered": !bordered
@@ -2377,7 +2473,7 @@ function ListItemContent(_a) {
2377
2473
  )
2378
2474
  );
2379
2475
  }
2380
- const defaultColumnConfig = () => ({
2476
+ const defaultColumnConfig$1 = () => ({
2381
2477
  key: mkShortId(),
2382
2478
  isEditableExpr: () => false,
2383
2479
  disableSorting: false,
@@ -2391,7 +2487,7 @@ const defaultColumnConfig = () => ({
2391
2487
  dataType: "auto",
2392
2488
  role: void 0
2393
2489
  });
2394
- const roles = [
2490
+ const roles$1 = [
2395
2491
  "content",
2396
2492
  "title",
2397
2493
  "subtitle",
@@ -2400,7 +2496,7 @@ const roles = [
2400
2496
  "image",
2401
2497
  "unset"
2402
2498
  ];
2403
- function useRoleDefinitions(data, props) {
2499
+ function useRoleDefinitions$1(data, props) {
2404
2500
  const { fields, setControlContextData, rowActions } = props;
2405
2501
  return React__default.default.useMemo(() => {
2406
2502
  var _a, _b, _c, _d;
@@ -2413,7 +2509,7 @@ function useRoleDefinitions(data, props) {
2413
2509
  var _a2;
2414
2510
  if (role !== "unset") {
2415
2511
  return ensureArray((_a2 = props[role]) != null ? _a2 : []).map((field) => {
2416
- return __spreadProps(__spreadValues$1({}, field), {
2512
+ return __spreadProps$1(__spreadValues$3({}, field), {
2417
2513
  role
2418
2514
  });
2419
2515
  });
@@ -2433,7 +2529,7 @@ function useRoleDefinitions(data, props) {
2433
2529
  return dataSources.deriveFieldConfigs(
2434
2530
  mode === "defaults" ? [] : specifiedFieldsPartial,
2435
2531
  schema,
2436
- (field) => __spreadValues$1(__spreadValues$1({}, defaultColumnConfig()), field && {
2532
+ (field) => __spreadValues$3(__spreadValues$3({}, defaultColumnConfig$1()), field && {
2437
2533
  key: field.id,
2438
2534
  fieldId: field.id,
2439
2535
  title: field.label || field.id,
@@ -2524,12 +2620,12 @@ function useRoleDefinitions(data, props) {
2524
2620
  groupBy__default.default(mergedFieldsWithDefaults, (f) => f.role)
2525
2621
  );
2526
2622
  const finalRoles = {};
2527
- for (const role of roles) {
2623
+ for (const role of roles$1) {
2528
2624
  if (role !== "unset") {
2529
2625
  finalRoles[role] = (_d = maybe(props[role], ensureArray)) != null ? _d : roleConfigs[role];
2530
2626
  }
2531
2627
  }
2532
- setControlContextData == null ? void 0 : setControlContextData(__spreadProps(__spreadValues$1({}, data), {
2628
+ setControlContextData == null ? void 0 : setControlContextData(__spreadProps$1(__spreadValues$3({}, data), {
2533
2629
  mergedFields: mergedFieldsWithDefaults,
2534
2630
  minimalFullLengthFields: minimalFullLengthFieldsWithDefaults
2535
2631
  }));
@@ -2538,60 +2634,22 @@ function useRoleDefinitions(data, props) {
2538
2634
  }, [fields, data, setControlContextData, rowActions]);
2539
2635
  }
2540
2636
 
2541
- var __defProp = Object.defineProperty;
2542
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
2543
- var __hasOwnProp = Object.prototype.hasOwnProperty;
2544
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
2545
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2546
- var __spreadValues = (a, b) => {
2637
+ var __defProp$2 = Object.defineProperty;
2638
+ var __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;
2639
+ var __hasOwnProp$2 = Object.prototype.hasOwnProperty;
2640
+ var __propIsEnum$2 = Object.prototype.propertyIsEnumerable;
2641
+ var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2642
+ var __spreadValues$2 = (a, b) => {
2547
2643
  for (var prop in b || (b = {}))
2548
- if (__hasOwnProp.call(b, prop))
2549
- __defNormalProp(a, prop, b[prop]);
2550
- if (__getOwnPropSymbols)
2551
- for (var prop of __getOwnPropSymbols(b)) {
2552
- if (__propIsEnum.call(b, prop))
2553
- __defNormalProp(a, prop, b[prop]);
2644
+ if (__hasOwnProp$2.call(b, prop))
2645
+ __defNormalProp$2(a, prop, b[prop]);
2646
+ if (__getOwnPropSymbols$2)
2647
+ for (var prop of __getOwnPropSymbols$2(b)) {
2648
+ if (__propIsEnum$2.call(b, prop))
2649
+ __defNormalProp$2(a, prop, b[prop]);
2554
2650
  }
2555
2651
  return a;
2556
2652
  };
2557
- function roleProp({
2558
- role,
2559
- singular = false,
2560
- advanced = false,
2561
- displayName
2562
- }) {
2563
- return singular ? {
2564
- type: "object",
2565
- displayName,
2566
- advanced,
2567
- hidden: (ps) => !ps.data,
2568
- nameFunc: (item) => maybe(
2569
- item,
2570
- (i) => i.isHidden ? "Hidden" : i.fieldId || "Custom value"
2571
- ),
2572
- fields: getFieldSubprops({
2573
- canChangeField: true,
2574
- noTitle: true
2575
- }),
2576
- defaultValueHint: (_props, contextData) => {
2577
- var _a;
2578
- return ((_a = contextData == null ? void 0 : contextData.minimalFullLengthFields) != null ? _a : []).find(
2579
- (f) => f.role === role
2580
- );
2581
- }
2582
- } : buildFieldsPropType({
2583
- displayName,
2584
- advanced,
2585
- noTitle: true,
2586
- canChangeField: true,
2587
- minimalValue: (_props, contextData) => {
2588
- var _a;
2589
- return ((_a = contextData == null ? void 0 : contextData.minimalFullLengthFields) != null ? _a : []).filter(
2590
- (f) => f.role === role
2591
- );
2592
- }
2593
- });
2594
- }
2595
2653
  const richListMeta = {
2596
2654
  name: "hostless-rich-list",
2597
2655
  displayName: "Data List",
@@ -2601,7 +2659,7 @@ const richListMeta = {
2601
2659
  maxHeight: "100%"
2602
2660
  },
2603
2661
  defaultDisplay: "block",
2604
- props: __spreadValues({
2662
+ props: __spreadValues$2({
2605
2663
  data: dataProp(),
2606
2664
  type: {
2607
2665
  type: "choice",
@@ -2624,7 +2682,6 @@ const richListMeta = {
2624
2682
  image: roleProp({ role: "image", singular: true }),
2625
2683
  subtitle: roleProp({
2626
2684
  role: "subtitle",
2627
- displayName: "Subtitle",
2628
2685
  advanced: true
2629
2686
  }),
2630
2687
  // Haven't styled these yet!
@@ -2659,11 +2716,471 @@ function registerRichList(loader) {
2659
2716
  registerComponentHelper(loader, RichList, richListMeta);
2660
2717
  }
2661
2718
 
2719
+ var __defProp$1 = Object.defineProperty;
2720
+ var __defProps = Object.defineProperties;
2721
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
2722
+ var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2723
+ var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2724
+ var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
2725
+ var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
2726
+ var __spreadValues$1 = (a, b) => {
2727
+ for (var prop in b || (b = {}))
2728
+ if (__hasOwnProp$1.call(b, prop))
2729
+ __defNormalProp$1(a, prop, b[prop]);
2730
+ if (__getOwnPropSymbols$1)
2731
+ for (var prop of __getOwnPropSymbols$1(b)) {
2732
+ if (__propIsEnum$1.call(b, prop))
2733
+ __defNormalProp$1(a, prop, b[prop]);
2734
+ }
2735
+ return a;
2736
+ };
2737
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
2738
+ var __objRest = (source, exclude) => {
2739
+ var target = {};
2740
+ for (var prop in source)
2741
+ if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)
2742
+ target[prop] = source[prop];
2743
+ if (source != null && __getOwnPropSymbols$1)
2744
+ for (var prop of __getOwnPropSymbols$1(source)) {
2745
+ if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))
2746
+ target[prop] = source[prop];
2747
+ }
2748
+ return target;
2749
+ };
2750
+ function getEventFullDate(date) {
2751
+ var _a;
2752
+ return ((_a = parseDate(date)) == null ? void 0 : _a.toISODate()) || void 0;
2753
+ }
2754
+ function getEventMonthYear(date) {
2755
+ var _a;
2756
+ return (_a = getEventFullDate(date)) == null ? void 0 : _a.substring(0, 7);
2757
+ }
2758
+ function EventCell({ events }) {
2759
+ if (!events || !events.length)
2760
+ return null;
2761
+ return /* @__PURE__ */ React__default.default.createElement("ul", { style: { all: "unset" } }, events.map((e) => /* @__PURE__ */ React__default.default.createElement("li", { key: JSON.stringify(e), style: { all: "unset", display: "block" } }, /* @__PURE__ */ React__default.default.createElement(antd.Badge, { color: e.color || "green", text: e.title }))));
2762
+ }
2763
+ function RichCalendar(props) {
2764
+ const _a = props, {
2765
+ data: rawData = {
2766
+ data: [],
2767
+ schema: {
2768
+ id: "inferred",
2769
+ fields: [
2770
+ {
2771
+ id: "id",
2772
+ type: "string",
2773
+ readOnly: false
2774
+ }
2775
+ ]
2776
+ }
2777
+ },
2778
+ value: isoValue,
2779
+ defaultValue: isoDefaultValue,
2780
+ validRange: isoValidRange,
2781
+ dateCellRender,
2782
+ dateFullCellRender,
2783
+ monthCellRender,
2784
+ monthFullCellRender
2785
+ } = _a, rest = __objRest(_a, [
2786
+ "data",
2787
+ "value",
2788
+ "defaultValue",
2789
+ "validRange",
2790
+ "dateCellRender",
2791
+ "dateFullCellRender",
2792
+ "monthCellRender",
2793
+ "monthFullCellRender"
2794
+ ]);
2795
+ const data = dataSources.normalizeData(rawData);
2796
+ const { normalized, finalRoles: roleConfigs } = useRoleDefinitions(
2797
+ data,
2798
+ props
2799
+ );
2800
+ const {
2801
+ eventsByDate,
2802
+ eventsByMonth
2803
+ } = React.useMemo(() => {
2804
+ if (!data)
2805
+ return { eventsByDate: {}, eventsByMonth: {} };
2806
+ return data == null ? void 0 : data.data.reduce(
2807
+ (acc, item) => {
2808
+ const date = getFieldAggregateValue(item, roleConfigs.date);
2809
+ const title = getFieldAggregateValue(item, roleConfigs.title);
2810
+ const color = getFieldAggregateValue(item, roleConfigs.color);
2811
+ const event = {
2812
+ date,
2813
+ title,
2814
+ color
2815
+ };
2816
+ const keyDate = getEventFullDate(date);
2817
+ const keyMonth = getEventMonthYear(date);
2818
+ if (keyDate && keyMonth) {
2819
+ acc.eventsByDate[keyDate] = [
2820
+ ...acc.eventsByDate[keyDate] || [],
2821
+ event
2822
+ ];
2823
+ acc.eventsByMonth[keyMonth] = [
2824
+ ...acc.eventsByMonth[keyMonth] || [],
2825
+ event
2826
+ ];
2827
+ }
2828
+ return acc;
2829
+ },
2830
+ { eventsByDate: {}, eventsByMonth: {} }
2831
+ );
2832
+ }, [data, roleConfigs.color, roleConfigs.date, roleConfigs.title]);
2833
+ const value = React.useMemo(
2834
+ () => isValidIsoDate(isoValue) ? dayjs__default.default(isoValue) : dayjs__default.default(),
2835
+ [isoValue]
2836
+ );
2837
+ const defaultValue = React.useMemo(
2838
+ () => isValidIsoDate(isoDefaultValue) ? dayjs__default.default(isoDefaultValue) : dayjs__default.default(),
2839
+ [isoDefaultValue]
2840
+ );
2841
+ const validRange = React.useMemo(() => {
2842
+ if (!isoValidRange)
2843
+ return void 0;
2844
+ const range = isoValidRange.filter((dateIso) => isValidIsoDate(dateIso)).map((d) => dayjs__default.default(d));
2845
+ if (range.length !== 2)
2846
+ return void 0;
2847
+ return [range[0], range[1]];
2848
+ }, [isoValidRange]);
2849
+ const key = React.useMemo(() => JSON.stringify(roleConfigs), [roleConfigs]);
2850
+ return /* @__PURE__ */ React__default.default.createElement(
2851
+ antd.Calendar,
2852
+ __spreadProps(__spreadValues$1({}, rest), {
2853
+ key,
2854
+ validRange,
2855
+ defaultValue,
2856
+ value,
2857
+ dateCellRender: dateCellRender ? dateCellRender : (date) => /* @__PURE__ */ React__default.default.createElement(
2858
+ EventCell,
2859
+ {
2860
+ events: eventsByDate[getEventFullDate(date.toISOString())]
2861
+ }
2862
+ ),
2863
+ monthCellRender: monthCellRender ? monthCellRender : (date) => /* @__PURE__ */ React__default.default.createElement(
2864
+ EventCell,
2865
+ {
2866
+ events: eventsByMonth[getEventMonthYear(date.toISOString())]
2867
+ }
2868
+ ),
2869
+ dateFullCellRender,
2870
+ monthFullCellRender
2871
+ })
2872
+ );
2873
+ }
2874
+ const defaultColumnConfig = () => ({
2875
+ key: mkShortId(),
2876
+ isEditableExpr: () => false,
2877
+ disableSorting: false,
2878
+ sortByExpr: void 0,
2879
+ isHidden: false,
2880
+ formatting: {
2881
+ styles: {},
2882
+ align: "left",
2883
+ freeze: "off"
2884
+ },
2885
+ dataType: "auto",
2886
+ role: void 0
2887
+ });
2888
+ const roles = ["date", "title", "color", "unset"];
2889
+ function useRoleDefinitions(data, props) {
2890
+ const { fields, setControlContextData } = props;
2891
+ return React__default.default.useMemo(() => {
2892
+ var _a, _b, _c, _d, _e;
2893
+ const schema = data == null ? void 0 : data.schema;
2894
+ if (!data || !schema) {
2895
+ return { normalized: [], finalRoles: {} };
2896
+ }
2897
+ function tagFieldConfigs(role) {
2898
+ var _a2;
2899
+ if (role !== "unset") {
2900
+ return ensureArray((_a2 = props[role]) != null ? _a2 : []).map((field) => {
2901
+ return __spreadProps(__spreadValues$1({}, field), {
2902
+ role
2903
+ });
2904
+ });
2905
+ } else {
2906
+ return [];
2907
+ }
2908
+ }
2909
+ const specifiedFieldsPartial = [
2910
+ ...tagFieldConfigs("date"),
2911
+ ...tagFieldConfigs("color"),
2912
+ ...tagFieldConfigs("title")
2913
+ ];
2914
+ function doDeriveFieldConfigs(mode) {
2915
+ return dataSources.deriveFieldConfigs(
2916
+ mode === "defaults" ? [] : specifiedFieldsPartial,
2917
+ schema,
2918
+ (field) => __spreadValues$1(__spreadValues$1({}, defaultColumnConfig()), field && {
2919
+ key: field.id,
2920
+ fieldId: field.id,
2921
+ title: field.label || field.id,
2922
+ // undefined means not yet determined in this routine, not 'unset'
2923
+ role: void 0,
2924
+ expr: (currentItem) => currentItem[field.id]
2925
+ })
2926
+ );
2927
+ }
2928
+ const {
2929
+ mergedFields: defaultMergedFields,
2930
+ minimalFullLengthFields: defaultMinimalFullLengthFields
2931
+ } = doDeriveFieldConfigs("defaults");
2932
+ if (data.data.length > 0 && !defaultMergedFields.some((field) => field.role === "date")) {
2933
+ const sampleRows = Array.from(
2934
+ new Set(
2935
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(
2936
+ (i) => Math.round(i / 9 * (data.data.length - 1))
2937
+ )
2938
+ )
2939
+ ).map((i) => data.data[i]);
2940
+ const dateFieldCandidates = defaultMergedFields.filter(
2941
+ (field) => !field.role && sampleRows.filter(
2942
+ (row) => field.fieldId && isLikeDate(row[field.fieldId])
2943
+ ).length >= sampleRows.length / 2
2944
+ );
2945
+ const dateField = (_b = (_a = dateFieldCandidates.find(
2946
+ (f) => {
2947
+ var _a2;
2948
+ return (_a2 = f.fieldId) == null ? void 0 : _a2.match(/^(date|datetime|timestamp|eventdate)$/i);
2949
+ }
2950
+ )) != null ? _a : dateFieldCandidates.find(
2951
+ (f) => {
2952
+ var _a2;
2953
+ return (_a2 = f.fieldId) == null ? void 0 : _a2.match(/.*(date|time|event).*/i);
2954
+ }
2955
+ )) != null ? _b : dateFieldCandidates[0];
2956
+ if (dateField) {
2957
+ dateField.role = "date";
2958
+ }
2959
+ }
2960
+ if (data.data.length > 0 && !defaultMergedFields.some((field) => field.role === "color")) {
2961
+ const sampleRows = Array.from(
2962
+ new Set(
2963
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map(
2964
+ (i) => Math.round(i / 9 * (data.data.length - 1))
2965
+ )
2966
+ )
2967
+ ).map((i) => data.data[i]);
2968
+ const colorFieldCandidates = defaultMergedFields.filter(
2969
+ (field) => !field.role && sampleRows.filter(
2970
+ (row) => field.fieldId && isLikeColor(row[field.fieldId])
2971
+ ).length >= sampleRows.length / 2
2972
+ );
2973
+ const colorField = (_d = (_c = colorFieldCandidates.find(
2974
+ (f) => {
2975
+ var _a2;
2976
+ return (_a2 = f.fieldId) == null ? void 0 : _a2.match(/^(color|hex|rgb|hsl|rgba|cmyk|hsv|hsb)$/i);
2977
+ }
2978
+ )) != null ? _c : colorFieldCandidates.find(
2979
+ (f) => {
2980
+ var _a2;
2981
+ return (_a2 = f.fieldId) == null ? void 0 : _a2.match(/.*(color|hex|rgb|hsl|rgba|cmyk|hsv|hsb).*/i);
2982
+ }
2983
+ )) != null ? _d : colorFieldCandidates[0];
2984
+ if (colorField) {
2985
+ colorField.role = "color";
2986
+ }
2987
+ }
2988
+ if (!defaultMergedFields.some((field) => field.role === "title")) {
2989
+ const titleField = defaultMergedFields.find(
2990
+ (field) => {
2991
+ var _a2;
2992
+ return !field.role && ((_a2 = field.fieldId) == null ? void 0 : _a2.toLowerCase().match(/^(title|name||event[ _-]?name)$/));
2993
+ }
2994
+ );
2995
+ if (titleField) {
2996
+ titleField.role = "title";
2997
+ }
2998
+ }
2999
+ const fieldIdToDefaultRole = new Map(
3000
+ defaultMergedFields.map((f) => [f.fieldId, f.role])
3001
+ );
3002
+ for (const f of defaultMinimalFullLengthFields) {
3003
+ f.role = fieldIdToDefaultRole.get(f.fieldId);
3004
+ }
3005
+ const { mergedFields, minimalFullLengthFields } = doDeriveFieldConfigs("existing");
3006
+ const minimalFullLengthFieldsWithDefaults = [
3007
+ ...minimalFullLengthFields.filter((f) => f.role && f.role !== "unset"),
3008
+ ...defaultMinimalFullLengthFields.filter(
3009
+ (f) => f.role && f.role !== "unset" && !props[f.role]
3010
+ )
3011
+ ];
3012
+ const mergedFieldsWithDefaults = [
3013
+ ...mergedFields.filter((f) => f.role && f.role !== "unset"),
3014
+ ...defaultMergedFields.filter(
3015
+ (f) => f.role && f.role !== "unset" && !props[f.role]
3016
+ )
3017
+ ];
3018
+ const roleConfigs = ensure(
3019
+ lodash.groupBy(mergedFieldsWithDefaults, (f) => f.role)
3020
+ );
3021
+ const finalRoles = {};
3022
+ for (const role of roles) {
3023
+ if (role !== "unset") {
3024
+ finalRoles[role] = (_e = maybe(props[role], ensureArray)) != null ? _e : roleConfigs[role];
3025
+ }
3026
+ }
3027
+ setControlContextData == null ? void 0 : setControlContextData(__spreadProps(__spreadValues$1({}, data), {
3028
+ mergedFields: mergedFieldsWithDefaults,
3029
+ minimalFullLengthFields: minimalFullLengthFieldsWithDefaults
3030
+ }));
3031
+ const normalized = mergedFieldsWithDefaults;
3032
+ return { normalized, finalRoles };
3033
+ }, [data, setControlContextData, props]);
3034
+ }
3035
+
3036
+ var __defProp = Object.defineProperty;
3037
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3038
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
3039
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
3040
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3041
+ var __spreadValues = (a, b) => {
3042
+ for (var prop in b || (b = {}))
3043
+ if (__hasOwnProp.call(b, prop))
3044
+ __defNormalProp(a, prop, b[prop]);
3045
+ if (__getOwnPropSymbols)
3046
+ for (var prop of __getOwnPropSymbols(b)) {
3047
+ if (__propIsEnum.call(b, prop))
3048
+ __defNormalProp(a, prop, b[prop]);
3049
+ }
3050
+ return a;
3051
+ };
3052
+ const calendarHelpers = {
3053
+ states: {
3054
+ mode: {
3055
+ onChangeArgsToValue: (_date, mode) => mode
3056
+ },
3057
+ selectedDate: {
3058
+ onChangeArgsToValue: (date) => dayjs__default.default(date).toISOString()
3059
+ }
3060
+ }
3061
+ };
3062
+ const calendarComponentName = "hostless-rich-calendar";
3063
+ function registerRichCalendar(loader) {
3064
+ registerComponentHelper(loader, RichCalendar, {
3065
+ name: calendarComponentName,
3066
+ displayName: "Calendar",
3067
+ props: {
3068
+ data: {
3069
+ type: "dataSourceOpData",
3070
+ description: "The data to display. Should be a list of records with some date field."
3071
+ },
3072
+ title: roleProp({ role: "title" }),
3073
+ date: roleProp({ role: "date", singular: true }),
3074
+ color: roleProp({ role: "color", singular: true }),
3075
+ value: {
3076
+ // Must have a corresponding state and eventhandler for any prop that I want to be able to change in interactive mode.
3077
+ editOnly: true,
3078
+ uncontrolledProp: "defaultValue",
3079
+ type: "dateString",
3080
+ description: `The date selected by default as an ISO string`,
3081
+ validator: (value, ps) => {
3082
+ if (!ps.validRange)
3083
+ return true;
3084
+ if (!isValidIsoDate(value))
3085
+ return "Not a valid ISO string.";
3086
+ if (dayjs__default.default(value).isBefore(ps.validRange[0]) || dayjs__default.default(value).isAfter(ps.validRange[1]))
3087
+ return "Not within the valid range";
3088
+ return true;
3089
+ }
3090
+ },
3091
+ mode: {
3092
+ type: "choice",
3093
+ options: ["month", "year"],
3094
+ description: "The default display mode of the calendar.",
3095
+ defaultValueHint: "month"
3096
+ },
3097
+ validRange: {
3098
+ type: "dateRangeStrings",
3099
+ description: "Only allow selection of dates that lie within this range",
3100
+ advanced: true,
3101
+ validator: (value, ps) => {
3102
+ if (!value)
3103
+ return true;
3104
+ if (!Array.isArray(value) || value.length !== 2)
3105
+ return "Not an array with 2 items";
3106
+ if (!isValidIsoDate(value[0]) || !isValidIsoDate(value[1]))
3107
+ return "Min or max range is not in valid ISO date format.";
3108
+ return true;
3109
+ }
3110
+ },
3111
+ headerRender: {
3112
+ type: "slot",
3113
+ renderPropParams: ["headerProps"],
3114
+ hidePlaceholder: true,
3115
+ displayName: "Custom Header"
3116
+ },
3117
+ dateCellRender: {
3118
+ type: "slot",
3119
+ renderPropParams: ["dateProps"],
3120
+ hidePlaceholder: true,
3121
+ displayName: "Append Date Cell"
3122
+ },
3123
+ dateFullCellRender: {
3124
+ type: "slot",
3125
+ renderPropParams: ["dateProps"],
3126
+ hidePlaceholder: true,
3127
+ displayName: "Custom Date Cell"
3128
+ },
3129
+ monthCellRender: {
3130
+ type: "slot",
3131
+ renderPropParams: ["dateProps"],
3132
+ hidePlaceholder: true,
3133
+ displayName: "Append Month Cell"
3134
+ },
3135
+ monthFullCellRender: {
3136
+ type: "slot",
3137
+ renderPropParams: ["dateProps"],
3138
+ hidePlaceholder: true,
3139
+ displayName: "Custom Month Cell"
3140
+ },
3141
+ onPanelChange: {
3142
+ type: "eventHandler",
3143
+ description: "Triggers when the calendar mode changes (e.g. from month to year mode)",
3144
+ argTypes: [
3145
+ { name: "date", type: "object" },
3146
+ { name: "mode", type: "string" }
3147
+ ]
3148
+ },
3149
+ onChange: {
3150
+ type: "eventHandler",
3151
+ argTypes: [{ name: "date", type: "object" }]
3152
+ }
3153
+ },
3154
+ states: {
3155
+ mode: __spreadValues({
3156
+ type: "writable",
3157
+ valueProp: "mode",
3158
+ onChangeProp: "onPanelChange",
3159
+ variableType: "text"
3160
+ }, calendarHelpers.states.mode),
3161
+ selectedDate: __spreadValues({
3162
+ type: "writable",
3163
+ valueProp: "value",
3164
+ onChangeProp: "onChange",
3165
+ variableType: "text"
3166
+ }, calendarHelpers.states.selectedDate)
3167
+ },
3168
+ componentHelpers: {
3169
+ helpers: calendarHelpers,
3170
+ importName: "calendarHelpers",
3171
+ importPath: "@plasmicpkgs/plasmic-rich-components"
3172
+ },
3173
+ importPath: "@plasmicpkgs/plasmic-rich-components",
3174
+ importName: "RichCalendar"
3175
+ });
3176
+ }
3177
+
2662
3178
  function registerAll(loader) {
2663
3179
  registerRichLayout(loader);
2664
3180
  registerRichList(loader);
2665
3181
  registerRichTable(loader);
2666
3182
  registerRichDetails(loader);
3183
+ registerRichCalendar(loader);
2667
3184
  }
2668
3185
 
2669
3186
  exports.RichDetails = RichDetails;