pollination-react-io 0.0.13 → 0.0.14

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/build/index.js CHANGED
@@ -2163,19 +2163,17 @@ function __generator(thisArg, body) {
2163
2163
  var useSendHbjson = function () {
2164
2164
  var host = getHost();
2165
2165
  var _a = React.useState({}), state = _a[0], setState = _a[1];
2166
- var rubySendHbjson = React.useCallback(function (message, preview) {
2167
- if (preview === void 0) { preview = true; }
2166
+ var rubySendHbjson = React.useCallback(function (action, message) {
2168
2167
  if (!checkRuby())
2169
2168
  return;
2170
- var response = sendMessageRuby(__assign$2({ action: preview ? 'CombinedRenderingPollinationModel' : 'BakePollinationModel' }, message));
2169
+ var response = sendMessageRuby(__assign$2({ action: action }, message));
2171
2170
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2172
2171
  return response;
2173
2172
  }, []);
2174
- var dotNetSendHbjson = React.useCallback(function (message, preview) {
2175
- if (preview === void 0) { preview = true; }
2173
+ var dotNetSendHbjson = React.useCallback(function (action, message) {
2176
2174
  if (!checkDotNet())
2177
2175
  return;
2178
- var response = sendMessageDotNet(__assign$2({ action: preview ? 'CombinedRenderingPollinationModel' : 'BakePollinationModel' }, message));
2176
+ var response = sendMessageDotNet(__assign$2({ action: action }, message));
2179
2177
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2180
2178
  return response;
2181
2179
  }, []);
@@ -2201,19 +2199,17 @@ var useSendHbjson = function () {
2201
2199
  var useSendGeometry = function () {
2202
2200
  var host = getHost();
2203
2201
  var _a = React.useState({}), state = _a[0], setState = _a[1];
2204
- var rubySendGeometry = React.useCallback(function (message, preview) {
2205
- if (preview === void 0) { preview = true; }
2202
+ var rubySendGeometry = React.useCallback(function (action, message) {
2206
2203
  if (!checkRuby())
2207
2204
  return;
2208
- var response = sendMessageRuby(__assign$2({ action: preview ? 'CombinedRendering' : 'BakeGeometry' }, message));
2205
+ var response = sendMessageRuby(__assign$2({ action: action }, message));
2209
2206
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2210
2207
  return response;
2211
2208
  }, []);
2212
- var dotNetSendGeometry = React.useCallback(function (message, preview) {
2213
- if (preview === void 0) { preview = true; }
2209
+ var dotNetSendGeometry = React.useCallback(function (action, message) {
2214
2210
  if (!checkDotNet())
2215
2211
  return;
2216
- var response = sendMessageDotNet(__assign$2({ action: preview ? 'CombinedRendering' : 'BakeGeometry' }, message));
2212
+ var response = sendMessageDotNet(__assign$2({ action: action }, message));
2217
2213
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2218
2214
  return response;
2219
2215
  }, []);
@@ -4532,7 +4528,7 @@ function styleInject(css, ref) {
4532
4528
  }
4533
4529
  }
4534
4530
 
4535
- var css_248z$2 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n.poll-select-content {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n display: flex;\n flex-direction: column;\n width: fit-content;\n background-color: white;\n border: 1px solid var(--grey3);\n border-radius: 4px;\n padding: 6px 4px;\n box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 4px;\n gap: 2px;\n}\n\n.poll-select-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n border-radius: 2px;\n padding: 2px 8px;\n transition: background-color 0.15s linear, color 0.15s linear;\n}\n\n.poll-select-item[data-state=checked] {\n background-color: var(--primary2);\n color: white;\n}\n\n.poll-select-item:focus-visible {\n outline: none;\n}\n\n.poll-select-item:hover {\n background-color: var(--primary0);\n cursor: pointer;\n color: unset;\n}\n\n.poll-separator {\n background-color: #d0d7de;\n height: 1px;\n width: 100%;\n margin: 4px 0;\n}";
4531
+ var css_248z$2 = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n.poll-select-content {\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", Segoe UI Symbol, \"Noto Color Emoji\";\n display: flex;\n flex-direction: column;\n width: fit-content;\n background-color: white;\n border: 1px solid var(--grey3);\n border-radius: 4px;\n padding: 6px 4px;\n box-shadow: rgba(0, 0, 0, 0.08) 0px 2px 4px;\n gap: 2px;\n}\n\n.poll-select-item {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 6px;\n border-radius: 2px;\n padding: 2px 8px 2px 24px;\n transition: background-color 0.15s linear, color 0.15s linear;\n}\n\n.poll-select-item[data-state=checked] {\n background-color: var(--primary2);\n color: white;\n}\n\n.poll-select-item:focus-visible {\n outline: none;\n}\n\n.poll-select-item:hover {\n background-color: var(--primary0);\n cursor: pointer;\n color: unset;\n}\n\n.poll-separator {\n background-color: #d0d7de;\n height: 1px;\n width: 100%;\n margin: 4px 0;\n}";
4536
4532
  styleInject(css_248z$2);
4537
4533
 
4538
4534
  var Dropdown = function (_a) {
@@ -4546,15 +4542,12 @@ var Dropdown = function (_a) {
4546
4542
  o.onSelect(o);
4547
4543
  }, checked: o.checked, disabled: o.disabled }, itemProps),
4548
4544
  o.checked ?
4549
- React__default["default"].createElement(ItemIndicator, null,
4550
- React__default["default"].createElement("div", { style: {
4551
- display: 'flex',
4552
- alignItems: 'center',
4553
- justifyContent: 'center',
4554
- width: 12,
4555
- height: 12,
4556
- } },
4557
- React__default["default"].createElement(CheckCircle$1, null))) :
4545
+ React__default["default"].createElement(ItemIndicator, { style: {
4546
+ position: 'absolute',
4547
+ display: 'inline-flex',
4548
+ left: 10
4549
+ } },
4550
+ React__default["default"].createElement(CheckCircle$1, null)) :
4558
4551
  React__default["default"].createElement("div", { style: {
4559
4552
  width: 12,
4560
4553
  minWidth: 12,
@@ -4566,21 +4559,12 @@ var Dropdown = function (_a) {
4566
4559
  if (o.onSelect)
4567
4560
  o.onSelect(o);
4568
4561
  }, textValue: o.label, value: o.id, disabled: o.disabled }, itemProps),
4569
- o.checked ?
4570
- React__default["default"].createElement(ItemIndicator, null,
4571
- React__default["default"].createElement("div", { style: {
4572
- display: 'flex',
4573
- alignItems: 'center',
4574
- justifyContent: 'center',
4575
- width: 12,
4576
- height: 12,
4577
- } },
4578
- React__default["default"].createElement(CheckCircle$1, null))) :
4579
- React__default["default"].createElement("div", { style: {
4580
- width: 12,
4581
- minWidth: 12,
4582
- height: 12
4583
- } }),
4562
+ React__default["default"].createElement(ItemIndicator, { style: {
4563
+ position: 'absolute',
4564
+ display: 'inline-flex',
4565
+ left: 10
4566
+ } },
4567
+ React__default["default"].createElement(CheckCircle$1, null)),
4584
4568
  o.label));
4585
4569
  case 'label':
4586
4570
  return (React__default["default"].createElement(Label, { key: o.id }, o.label));
@@ -4596,7 +4580,7 @@ var Dropdown = function (_a) {
4596
4580
  React__default["default"].createElement(Content, __assign$2({ className: 'poll-select-content' }, contentProps),
4597
4581
  optionGroups.map(function (group, i, a) { return (React__default["default"].createElement(React__default["default"].Fragment, null,
4598
4582
  group.type && group.type === 'radio' ?
4599
- React__default["default"].createElement(RadioGroup, null, group.options.map(renderItem))
4583
+ React__default["default"].createElement(RadioGroup, { value: group.value }, group.options.map(renderItem))
4600
4584
  :
4601
4585
  group.type && group.type === 'default' ?
4602
4586
  React__default["default"].createElement(Group, null, group.options.map(renderItem)) :
@@ -4739,6 +4723,8 @@ var GetModel = function (_a) {
4739
4723
  var _d = useGetHbjson(); _d.host; var hbjson = _d.hbjson, getHbjson = _d.getHbjson;
4740
4724
  // initial retrieval of geometry
4741
4725
  React.useEffect(function () {
4726
+ if (!getHbjson)
4727
+ return;
4742
4728
  getHbjson(key);
4743
4729
  }, [key, getHbjson]);
4744
4730
  React.useEffect(function () {
@@ -4779,7 +4765,7 @@ var GetModel = function (_a) {
4779
4765
  if (!getHbjson)
4780
4766
  return;
4781
4767
  getHbjson(key, selOption === 'select', true);
4782
- }, disabled: typeof getHbjson === 'undefined', options: [{
4768
+ }, disabled: !getHbjson, options: [{
4783
4769
  type: 'radio',
4784
4770
  value: selOption,
4785
4771
  options: [
@@ -4814,73 +4800,183 @@ var GetModel = function (_a) {
4814
4800
  var css_248z = ":root {\n --background: #FFFAEE;\n --primary: #1890ff;\n --primary2: #40a9ff;\n --primary0: #e6f7ff;\n --grey5: #8c8c8c;\n --grey3: #d0d7de;\n --secondary: #fff566;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}";
4815
4801
  styleInject(css_248z);
4816
4802
 
4817
- var KEY = performance.now().toString();
4803
+ var getAction$1 = function (key) {
4804
+ switch (key) {
4805
+ case 'add':
4806
+ return 'BakeGeometry';
4807
+ case 'delete':
4808
+ return 'ClearGeometry';
4809
+ case 'preview':
4810
+ return 'DrawGeometry';
4811
+ case 'clear':
4812
+ return 'DisableDraw';
4813
+ case 'subscribe-preview':
4814
+ return 'DrawGeometry';
4815
+ }
4816
+ };
4818
4817
  var SendGeometry = function (_a) {
4819
- var geometry = _a.geometry;
4820
- var _b = React.useState(true), preview = _b[0], setPreview = _b[1];
4821
- var _c = useSendGeometry(); _c.host; _c.state; var sendGeometry = _c.sendGeometry;
4822
- // TODO:
4823
- // useEffect(() => {
4824
- // return () => {
4825
- // if (host === 'rhino') {
4826
- // sendMessageDotNet({
4827
- // action: 'DisableDraw'
4828
- // })
4829
- // }
4830
- // }
4831
- // }, [host])
4818
+ var geometry = _a.geometry, defaultAction = _a.defaultAction;
4819
+ var _b = React.useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
4820
+ var _c = React.useState(performance.now().toString()), key = _c[0]; _c[1];
4821
+ var _d = useSendGeometry(); _d.host; _d.state; var sendGeometry = _d.sendGeometry;
4822
+ React.useEffect(function () {
4823
+ if (!sendGeometry || selOpt !== 'subscribe-preview')
4824
+ return;
4825
+ sendGeometry('DrawGeometry', {
4826
+ data: geometry,
4827
+ uniqueId: key,
4828
+ options: {
4829
+ layer: 'StreamlitLayer',
4830
+ units: 'Meters',
4831
+ },
4832
+ });
4833
+ }, [selOpt, geometry, sendGeometry, key]);
4832
4834
  return (React__default["default"].createElement(SettingsButton, { disabled: !sendGeometry, onClick: function () {
4833
4835
  if (!sendGeometry)
4834
4836
  return;
4835
- sendGeometry({
4837
+ sendGeometry(getAction$1(selOpt), {
4836
4838
  data: geometry,
4837
- uniqueId: KEY,
4839
+ uniqueId: key,
4838
4840
  options: {
4839
4841
  layer: 'StreamlitLayer',
4840
4842
  units: 'Meters',
4841
4843
  },
4842
- }, preview);
4844
+ });
4843
4845
  }, options: [{
4846
+ type: 'radio',
4847
+ value: selOpt,
4844
4848
  options: [
4845
4849
  {
4846
- type: 'checkbox',
4847
- id: 'preview-send-geometry',
4850
+ type: 'radio',
4851
+ id: 'preview',
4848
4852
  label: 'Preview',
4849
- checked: preview,
4850
4853
  disabled: !sendGeometry,
4851
- onSelect: function () { return setPreview(function (p) { return !p; }); },
4854
+ onSelect: function () {
4855
+ setSelOpt(function (state) { return state === 'preview' ? undefined : 'preview'; });
4856
+ },
4857
+ },
4858
+ {
4859
+ type: 'radio',
4860
+ id: 'add',
4861
+ label: 'Add',
4862
+ disabled: !sendGeometry,
4863
+ onSelect: function () {
4864
+ setSelOpt(function (state) { return state === 'add' ? undefined : 'add'; });
4865
+ }
4866
+ },
4867
+ {
4868
+ type: 'radio',
4869
+ id: 'delete',
4870
+ label: 'Delete',
4871
+ disabled: !sendGeometry,
4872
+ onSelect: function () {
4873
+ setSelOpt(function (state) { return state === 'delete' ? undefined : 'delete'; });
4874
+ },
4875
+ },
4876
+ {
4877
+ type: 'radio',
4878
+ id: 'clear',
4879
+ label: 'Clear',
4880
+ disabled: !sendGeometry,
4881
+ onSelect: function () {
4882
+ setSelOpt(function (state) { return state === 'clear' ? undefined : 'clear'; });
4883
+ },
4884
+ },
4885
+ {
4886
+ type: 'radio',
4887
+ id: 'subscribe-preview',
4888
+ label: 'Subscribe Preview',
4889
+ disabled: !sendGeometry,
4890
+ onSelect: function () {
4891
+ setSelOpt(function (state) { return state === 'subscribe-preview' ? undefined : 'subscribe-preview'; });
4892
+ },
4852
4893
  },
4853
4894
  ]
4854
- }], label: preview ? "Preview Geometry" : "Bake Geometry" }));
4895
+ }], label: "".concat(selOpt ? selOpt.split('-').map(function (o) { return o.charAt(0).toUpperCase() + o.slice(1); }).join(' ') : 'Send', " Geometry") }));
4855
4896
  };
4856
4897
 
4898
+ var getAction = function (key) {
4899
+ switch (key) {
4900
+ case 'add':
4901
+ return 'BakePollinationModel';
4902
+ case 'preview':
4903
+ return 'DrawPollinationModel';
4904
+ case 'clear':
4905
+ return 'DisableDrawPollinationModel';
4906
+ case 'subscribe-preview':
4907
+ return 'DrawPollinationModel';
4908
+ }
4909
+ };
4857
4910
  var SendModel = function (_a) {
4858
- var hbjson = _a.hbjson;
4859
- var _b = React.useState(true), preview = _b[0], setPreview = _b[1];
4860
- var _c = useSendHbjson(); _c.host; _c.state; var sendHbjson = _c.sendHbjson;
4911
+ var hbjson = _a.hbjson, defaultAction = _a.defaultAction;
4912
+ var _b = React.useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
4913
+ var _c = React.useState(performance.now().toString()), key = _c[0]; _c[1];
4914
+ var _d = useSendHbjson(); _d.host; _d.state; var sendHbjson = _d.sendHbjson;
4915
+ React.useEffect(function () {
4916
+ if (!sendHbjson || selOpt !== 'subscribe-preview')
4917
+ return;
4918
+ sendHbjson('DrawPollinationModel', {
4919
+ data: hbjson,
4920
+ uniqueId: key,
4921
+ options: {
4922
+ layer: 'StreamlitLayer',
4923
+ units: 'Meters',
4924
+ },
4925
+ });
4926
+ }, [selOpt, hbjson, sendHbjson, key]);
4861
4927
  return (React__default["default"].createElement(SettingsButton, { disabled: !sendHbjson, onClick: function () {
4862
4928
  if (!sendHbjson)
4863
4929
  return;
4864
- sendHbjson({
4930
+ sendHbjson(getAction(selOpt), {
4865
4931
  data: hbjson,
4866
- uniqueId: performance.now().toString(),
4932
+ uniqueId: key,
4867
4933
  options: {
4868
4934
  layer: 'StreamlitLayer',
4869
4935
  units: 'Meters',
4870
4936
  },
4871
- }, preview);
4937
+ });
4872
4938
  }, options: [{
4939
+ type: 'radio',
4940
+ value: selOpt,
4873
4941
  options: [
4874
4942
  {
4875
- type: 'checkbox',
4876
- id: 'preview-send-model',
4943
+ type: 'radio',
4944
+ id: 'preview',
4877
4945
  label: 'Preview',
4878
- checked: preview,
4879
4946
  disabled: !sendHbjson,
4880
- onSelect: function () { return setPreview(function (p) { return !p; }); },
4947
+ onSelect: function () {
4948
+ setSelOpt(function (state) { return state === 'preview' ? undefined : 'preview'; });
4949
+ },
4950
+ },
4951
+ {
4952
+ type: 'radio',
4953
+ id: 'add',
4954
+ label: 'Add',
4955
+ disabled: !sendHbjson,
4956
+ onSelect: function () {
4957
+ setSelOpt(function (state) { return state === 'add' ? undefined : 'add'; });
4958
+ }
4959
+ },
4960
+ {
4961
+ type: 'radio',
4962
+ id: 'clear',
4963
+ label: 'Clear',
4964
+ disabled: !sendHbjson,
4965
+ onSelect: function () {
4966
+ setSelOpt(function (state) { return state === 'clear' ? undefined : 'clear'; });
4967
+ },
4968
+ },
4969
+ {
4970
+ type: 'radio',
4971
+ id: 'subscribe-preview',
4972
+ label: 'Subscribe Preview',
4973
+ disabled: !sendHbjson,
4974
+ onSelect: function () {
4975
+ setSelOpt(function (state) { return state === 'subscribe-preview' ? undefined : 'subscribe-preview'; });
4976
+ },
4881
4977
  },
4882
4978
  ]
4883
- }], label: preview ? "Preview Model" : "Bake Model" }));
4979
+ }], label: "".concat(selOpt ? selOpt.split('-').map(function (o) { return o.charAt(0).toUpperCase() + o.slice(1); }).join(' ') : 'Send', " Model") }));
4884
4980
  };
4885
4981
 
4886
4982
  exports.GetGeometry = GetGeometry;