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.
@@ -1,3 +1,4 @@
1
1
  export interface SendGeometryProps {
2
2
  geometry?: string[];
3
+ defaultAction?: 'add' | 'delete' | 'preview' | 'clear' | 'subscribe-preview';
3
4
  }
@@ -1,3 +1,4 @@
1
1
  export interface SendModelProps {
2
2
  hbjson?: object;
3
+ defaultAction?: 'add' | 'preview' | 'clear' | 'subscribe-preview';
3
4
  }
@@ -2,9 +2,11 @@ export interface Options {
2
2
  layer?: string;
3
3
  units?: string;
4
4
  }
5
- export declare type actions = 'BakeGeometry' | 'ClearGeometry' | 'DrawGeometry' | 'DisableDraw' | 'CombinedRendering' | 'RunCommand' | 'BakePollinationModel' | 'DisableDrawPollinationModel' | 'DrawPollinationModel' | 'CombinedRenderingPollinationModel' | 'SetModelSettings';
5
+ export declare type GeometryAction = 'BakeGeometry' | 'ClearGeometry' | 'DrawGeometry' | 'DisableDraw' | 'CombinedRendering';
6
+ export declare type ModelAction = 'BakePollinationModel' | 'DisableDrawPollinationModel' | 'DrawPollinationModel' | 'CombinedRenderingPollinationModel';
7
+ export declare type Action = GeometryAction | ModelAction | 'RunCommand' | 'SetModelSettings';
6
8
  export interface Message {
7
- action?: actions;
9
+ action?: Action;
8
10
  data?: any;
9
11
  options?: any;
10
12
  }
@@ -1,4 +1,4 @@
1
- import { Message } from './types';
1
+ import { GeometryAction, Message } from './types';
2
2
  interface SendGeometryOptions {
3
3
  layer: string;
4
4
  units: string;
@@ -11,6 +11,6 @@ declare type SendGeometryMessage = Message & SendGeometry;
11
11
  export declare const useSendGeometry: () => {
12
12
  host: any;
13
13
  state: {};
14
- sendGeometry: (message: SendGeometryMessage, preview?: any) => Message;
14
+ sendGeometry: (action: GeometryAction, message: SendGeometryMessage) => Message;
15
15
  };
16
16
  export {};
@@ -1,4 +1,4 @@
1
- import { Message } from './types';
1
+ import { ModelAction, Message } from './types';
2
2
  interface SendGeometryOptions {
3
3
  layer: string;
4
4
  units: string;
@@ -11,6 +11,6 @@ declare type SendGeometryMessage = Message & SendGeometry;
11
11
  export declare const useSendHbjson: () => {
12
12
  host: any;
13
13
  state: {};
14
- sendHbjson: (message: SendGeometryMessage, preview?: any) => Message;
14
+ sendHbjson: (action: ModelAction, message: SendGeometryMessage) => Message;
15
15
  };
16
16
  export {};
@@ -2136,19 +2136,17 @@ function __generator(thisArg, body) {
2136
2136
  var useSendHbjson = function () {
2137
2137
  var host = getHost();
2138
2138
  var _a = useState({}), state = _a[0], setState = _a[1];
2139
- var rubySendHbjson = useCallback(function (message, preview) {
2140
- if (preview === void 0) { preview = true; }
2139
+ var rubySendHbjson = useCallback(function (action, message) {
2141
2140
  if (!checkRuby())
2142
2141
  return;
2143
- var response = sendMessageRuby(__assign$2({ action: preview ? 'CombinedRenderingPollinationModel' : 'BakePollinationModel' }, message));
2142
+ var response = sendMessageRuby(__assign$2({ action: action }, message));
2144
2143
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2145
2144
  return response;
2146
2145
  }, []);
2147
- var dotNetSendHbjson = useCallback(function (message, preview) {
2148
- if (preview === void 0) { preview = true; }
2146
+ var dotNetSendHbjson = useCallback(function (action, message) {
2149
2147
  if (!checkDotNet())
2150
2148
  return;
2151
- var response = sendMessageDotNet(__assign$2({ action: preview ? 'CombinedRenderingPollinationModel' : 'BakePollinationModel' }, message));
2149
+ var response = sendMessageDotNet(__assign$2({ action: action }, message));
2152
2150
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2153
2151
  return response;
2154
2152
  }, []);
@@ -2174,19 +2172,17 @@ var useSendHbjson = function () {
2174
2172
  var useSendGeometry = function () {
2175
2173
  var host = getHost();
2176
2174
  var _a = useState({}), state = _a[0], setState = _a[1];
2177
- var rubySendGeometry = useCallback(function (message, preview) {
2178
- if (preview === void 0) { preview = true; }
2175
+ var rubySendGeometry = useCallback(function (action, message) {
2179
2176
  if (!checkRuby())
2180
2177
  return;
2181
- var response = sendMessageRuby(__assign$2({ action: preview ? 'CombinedRendering' : 'BakeGeometry' }, message));
2178
+ var response = sendMessageRuby(__assign$2({ action: action }, message));
2182
2179
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2183
2180
  return response;
2184
2181
  }, []);
2185
- var dotNetSendGeometry = useCallback(function (message, preview) {
2186
- if (preview === void 0) { preview = true; }
2182
+ var dotNetSendGeometry = useCallback(function (action, message) {
2187
2183
  if (!checkDotNet())
2188
2184
  return;
2189
- var response = sendMessageDotNet(__assign$2({ action: preview ? 'CombinedRendering' : 'BakeGeometry' }, message));
2185
+ var response = sendMessageDotNet(__assign$2({ action: action }, message));
2190
2186
  setState(function (state) { return (__assign$2(__assign$2({}, state), { response: response })); });
2191
2187
  return response;
2192
2188
  }, []);
@@ -4505,7 +4501,7 @@ function styleInject(css, ref) {
4505
4501
  }
4506
4502
  }
4507
4503
 
4508
- 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}";
4504
+ 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}";
4509
4505
  styleInject(css_248z$2);
4510
4506
 
4511
4507
  var Dropdown = function (_a) {
@@ -4519,15 +4515,12 @@ var Dropdown = function (_a) {
4519
4515
  o.onSelect(o);
4520
4516
  }, checked: o.checked, disabled: o.disabled }, itemProps),
4521
4517
  o.checked ?
4522
- React__default.createElement(ItemIndicator, null,
4523
- React__default.createElement("div", { style: {
4524
- display: 'flex',
4525
- alignItems: 'center',
4526
- justifyContent: 'center',
4527
- width: 12,
4528
- height: 12,
4529
- } },
4530
- React__default.createElement(CheckCircle$1, null))) :
4518
+ React__default.createElement(ItemIndicator, { style: {
4519
+ position: 'absolute',
4520
+ display: 'inline-flex',
4521
+ left: 10
4522
+ } },
4523
+ React__default.createElement(CheckCircle$1, null)) :
4531
4524
  React__default.createElement("div", { style: {
4532
4525
  width: 12,
4533
4526
  minWidth: 12,
@@ -4539,21 +4532,12 @@ var Dropdown = function (_a) {
4539
4532
  if (o.onSelect)
4540
4533
  o.onSelect(o);
4541
4534
  }, textValue: o.label, value: o.id, disabled: o.disabled }, itemProps),
4542
- o.checked ?
4543
- React__default.createElement(ItemIndicator, null,
4544
- React__default.createElement("div", { style: {
4545
- display: 'flex',
4546
- alignItems: 'center',
4547
- justifyContent: 'center',
4548
- width: 12,
4549
- height: 12,
4550
- } },
4551
- React__default.createElement(CheckCircle$1, null))) :
4552
- React__default.createElement("div", { style: {
4553
- width: 12,
4554
- minWidth: 12,
4555
- height: 12
4556
- } }),
4535
+ React__default.createElement(ItemIndicator, { style: {
4536
+ position: 'absolute',
4537
+ display: 'inline-flex',
4538
+ left: 10
4539
+ } },
4540
+ React__default.createElement(CheckCircle$1, null)),
4557
4541
  o.label));
4558
4542
  case 'label':
4559
4543
  return (React__default.createElement(Label, { key: o.id }, o.label));
@@ -4569,7 +4553,7 @@ var Dropdown = function (_a) {
4569
4553
  React__default.createElement(Content, __assign$2({ className: 'poll-select-content' }, contentProps),
4570
4554
  optionGroups.map(function (group, i, a) { return (React__default.createElement(React__default.Fragment, null,
4571
4555
  group.type && group.type === 'radio' ?
4572
- React__default.createElement(RadioGroup, null, group.options.map(renderItem))
4556
+ React__default.createElement(RadioGroup, { value: group.value }, group.options.map(renderItem))
4573
4557
  :
4574
4558
  group.type && group.type === 'default' ?
4575
4559
  React__default.createElement(Group, null, group.options.map(renderItem)) :
@@ -4712,6 +4696,8 @@ var GetModel = function (_a) {
4712
4696
  var _d = useGetHbjson(); _d.host; var hbjson = _d.hbjson, getHbjson = _d.getHbjson;
4713
4697
  // initial retrieval of geometry
4714
4698
  useEffect(function () {
4699
+ if (!getHbjson)
4700
+ return;
4715
4701
  getHbjson(key);
4716
4702
  }, [key, getHbjson]);
4717
4703
  useEffect(function () {
@@ -4752,7 +4738,7 @@ var GetModel = function (_a) {
4752
4738
  if (!getHbjson)
4753
4739
  return;
4754
4740
  getHbjson(key, selOption === 'select', true);
4755
- }, disabled: typeof getHbjson === 'undefined', options: [{
4741
+ }, disabled: !getHbjson, options: [{
4756
4742
  type: 'radio',
4757
4743
  value: selOption,
4758
4744
  options: [
@@ -4787,73 +4773,183 @@ var GetModel = function (_a) {
4787
4773
  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}";
4788
4774
  styleInject(css_248z);
4789
4775
 
4790
- var KEY = performance.now().toString();
4776
+ var getAction$1 = function (key) {
4777
+ switch (key) {
4778
+ case 'add':
4779
+ return 'BakeGeometry';
4780
+ case 'delete':
4781
+ return 'ClearGeometry';
4782
+ case 'preview':
4783
+ return 'DrawGeometry';
4784
+ case 'clear':
4785
+ return 'DisableDraw';
4786
+ case 'subscribe-preview':
4787
+ return 'DrawGeometry';
4788
+ }
4789
+ };
4791
4790
  var SendGeometry = function (_a) {
4792
- var geometry = _a.geometry;
4793
- var _b = useState(true), preview = _b[0], setPreview = _b[1];
4794
- var _c = useSendGeometry(); _c.host; _c.state; var sendGeometry = _c.sendGeometry;
4795
- // TODO:
4796
- // useEffect(() => {
4797
- // return () => {
4798
- // if (host === 'rhino') {
4799
- // sendMessageDotNet({
4800
- // action: 'DisableDraw'
4801
- // })
4802
- // }
4803
- // }
4804
- // }, [host])
4791
+ var geometry = _a.geometry, defaultAction = _a.defaultAction;
4792
+ var _b = useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
4793
+ var _c = useState(performance.now().toString()), key = _c[0]; _c[1];
4794
+ var _d = useSendGeometry(); _d.host; _d.state; var sendGeometry = _d.sendGeometry;
4795
+ useEffect(function () {
4796
+ if (!sendGeometry || selOpt !== 'subscribe-preview')
4797
+ return;
4798
+ sendGeometry('DrawGeometry', {
4799
+ data: geometry,
4800
+ uniqueId: key,
4801
+ options: {
4802
+ layer: 'StreamlitLayer',
4803
+ units: 'Meters',
4804
+ },
4805
+ });
4806
+ }, [selOpt, geometry, sendGeometry, key]);
4805
4807
  return (React__default.createElement(SettingsButton, { disabled: !sendGeometry, onClick: function () {
4806
4808
  if (!sendGeometry)
4807
4809
  return;
4808
- sendGeometry({
4810
+ sendGeometry(getAction$1(selOpt), {
4809
4811
  data: geometry,
4810
- uniqueId: KEY,
4812
+ uniqueId: key,
4811
4813
  options: {
4812
4814
  layer: 'StreamlitLayer',
4813
4815
  units: 'Meters',
4814
4816
  },
4815
- }, preview);
4817
+ });
4816
4818
  }, options: [{
4819
+ type: 'radio',
4820
+ value: selOpt,
4817
4821
  options: [
4818
4822
  {
4819
- type: 'checkbox',
4820
- id: 'preview-send-geometry',
4823
+ type: 'radio',
4824
+ id: 'preview',
4821
4825
  label: 'Preview',
4822
- checked: preview,
4823
4826
  disabled: !sendGeometry,
4824
- onSelect: function () { return setPreview(function (p) { return !p; }); },
4827
+ onSelect: function () {
4828
+ setSelOpt(function (state) { return state === 'preview' ? undefined : 'preview'; });
4829
+ },
4830
+ },
4831
+ {
4832
+ type: 'radio',
4833
+ id: 'add',
4834
+ label: 'Add',
4835
+ disabled: !sendGeometry,
4836
+ onSelect: function () {
4837
+ setSelOpt(function (state) { return state === 'add' ? undefined : 'add'; });
4838
+ }
4839
+ },
4840
+ {
4841
+ type: 'radio',
4842
+ id: 'delete',
4843
+ label: 'Delete',
4844
+ disabled: !sendGeometry,
4845
+ onSelect: function () {
4846
+ setSelOpt(function (state) { return state === 'delete' ? undefined : 'delete'; });
4847
+ },
4848
+ },
4849
+ {
4850
+ type: 'radio',
4851
+ id: 'clear',
4852
+ label: 'Clear',
4853
+ disabled: !sendGeometry,
4854
+ onSelect: function () {
4855
+ setSelOpt(function (state) { return state === 'clear' ? undefined : 'clear'; });
4856
+ },
4857
+ },
4858
+ {
4859
+ type: 'radio',
4860
+ id: 'subscribe-preview',
4861
+ label: 'Subscribe Preview',
4862
+ disabled: !sendGeometry,
4863
+ onSelect: function () {
4864
+ setSelOpt(function (state) { return state === 'subscribe-preview' ? undefined : 'subscribe-preview'; });
4865
+ },
4825
4866
  },
4826
4867
  ]
4827
- }], label: preview ? "Preview Geometry" : "Bake Geometry" }));
4868
+ }], label: "".concat(selOpt ? selOpt.split('-').map(function (o) { return o.charAt(0).toUpperCase() + o.slice(1); }).join(' ') : 'Send', " Geometry") }));
4828
4869
  };
4829
4870
 
4871
+ var getAction = function (key) {
4872
+ switch (key) {
4873
+ case 'add':
4874
+ return 'BakePollinationModel';
4875
+ case 'preview':
4876
+ return 'DrawPollinationModel';
4877
+ case 'clear':
4878
+ return 'DisableDrawPollinationModel';
4879
+ case 'subscribe-preview':
4880
+ return 'DrawPollinationModel';
4881
+ }
4882
+ };
4830
4883
  var SendModel = function (_a) {
4831
- var hbjson = _a.hbjson;
4832
- var _b = useState(true), preview = _b[0], setPreview = _b[1];
4833
- var _c = useSendHbjson(); _c.host; _c.state; var sendHbjson = _c.sendHbjson;
4884
+ var hbjson = _a.hbjson, defaultAction = _a.defaultAction;
4885
+ var _b = useState(defaultAction !== null && defaultAction !== void 0 ? defaultAction : 'preview'), selOpt = _b[0], setSelOpt = _b[1];
4886
+ var _c = useState(performance.now().toString()), key = _c[0]; _c[1];
4887
+ var _d = useSendHbjson(); _d.host; _d.state; var sendHbjson = _d.sendHbjson;
4888
+ useEffect(function () {
4889
+ if (!sendHbjson || selOpt !== 'subscribe-preview')
4890
+ return;
4891
+ sendHbjson('DrawPollinationModel', {
4892
+ data: hbjson,
4893
+ uniqueId: key,
4894
+ options: {
4895
+ layer: 'StreamlitLayer',
4896
+ units: 'Meters',
4897
+ },
4898
+ });
4899
+ }, [selOpt, hbjson, sendHbjson, key]);
4834
4900
  return (React__default.createElement(SettingsButton, { disabled: !sendHbjson, onClick: function () {
4835
4901
  if (!sendHbjson)
4836
4902
  return;
4837
- sendHbjson({
4903
+ sendHbjson(getAction(selOpt), {
4838
4904
  data: hbjson,
4839
- uniqueId: performance.now().toString(),
4905
+ uniqueId: key,
4840
4906
  options: {
4841
4907
  layer: 'StreamlitLayer',
4842
4908
  units: 'Meters',
4843
4909
  },
4844
- }, preview);
4910
+ });
4845
4911
  }, options: [{
4912
+ type: 'radio',
4913
+ value: selOpt,
4846
4914
  options: [
4847
4915
  {
4848
- type: 'checkbox',
4849
- id: 'preview-send-model',
4916
+ type: 'radio',
4917
+ id: 'preview',
4850
4918
  label: 'Preview',
4851
- checked: preview,
4852
4919
  disabled: !sendHbjson,
4853
- onSelect: function () { return setPreview(function (p) { return !p; }); },
4920
+ onSelect: function () {
4921
+ setSelOpt(function (state) { return state === 'preview' ? undefined : 'preview'; });
4922
+ },
4923
+ },
4924
+ {
4925
+ type: 'radio',
4926
+ id: 'add',
4927
+ label: 'Add',
4928
+ disabled: !sendHbjson,
4929
+ onSelect: function () {
4930
+ setSelOpt(function (state) { return state === 'add' ? undefined : 'add'; });
4931
+ }
4932
+ },
4933
+ {
4934
+ type: 'radio',
4935
+ id: 'clear',
4936
+ label: 'Clear',
4937
+ disabled: !sendHbjson,
4938
+ onSelect: function () {
4939
+ setSelOpt(function (state) { return state === 'clear' ? undefined : 'clear'; });
4940
+ },
4941
+ },
4942
+ {
4943
+ type: 'radio',
4944
+ id: 'subscribe-preview',
4945
+ label: 'Subscribe Preview',
4946
+ disabled: !sendHbjson,
4947
+ onSelect: function () {
4948
+ setSelOpt(function (state) { return state === 'subscribe-preview' ? undefined : 'subscribe-preview'; });
4949
+ },
4854
4950
  },
4855
4951
  ]
4856
- }], label: preview ? "Preview Model" : "Bake Model" }));
4952
+ }], label: "".concat(selOpt ? selOpt.split('-').map(function (o) { return o.charAt(0).toUpperCase() + o.slice(1); }).join(' ') : 'Send', " Model") }));
4857
4953
  };
4858
4954
 
4859
4955
  export { GetGeometry, GetModel, SendGeometry, SendModel, checkDotNet, checkRuby, getHost, sendMessageDotNet, sendMessageRuby, subscribeDotNet, useGetGeometry, useGetHbjson, useHbjsontoVTK, useManageSettings, useRunCommand, useSendGeometry, useSendHbjson };