pollination-react-io 0.0.1 → 0.0.2

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,35 +1,5 @@
1
1
  import { useState, useCallback, useEffect, useMemo } from 'react';
2
2
 
3
- function styleInject(css, ref) {
4
- if ( ref === void 0 ) ref = {};
5
- var insertAt = ref.insertAt;
6
-
7
- if (!css || typeof document === 'undefined') { return; }
8
-
9
- var head = document.head || document.getElementsByTagName('head')[0];
10
- var style = document.createElement('style');
11
- style.type = 'text/css';
12
-
13
- if (insertAt === 'top') {
14
- if (head.firstChild) {
15
- head.insertBefore(style, head.firstChild);
16
- } else {
17
- head.appendChild(style);
18
- }
19
- } else {
20
- head.appendChild(style);
21
- }
22
-
23
- if (style.styleSheet) {
24
- style.styleSheet.cssText = css;
25
- } else {
26
- style.appendChild(document.createTextNode(css));
27
- }
28
- }
29
-
30
- var css_248z = ":root {\n --background: #fff;\n --font-color: #494949;\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --background: #3c3c3c;\n --font-color: #fafafa;\n }\n}\n.test-component {\n background-color: var(--background);\n color: var(--font-color);\n border: 1px solid #131111;\n padding: 16px;\n width: 360px;\n text-align: center;\n}\n.test-component .heading {\n font-family: \"Avenir Next\", Helvetica, Arial, sans-serif;\n font-size: 40px;\n font-weight: bold;\n}";
31
- styleInject(css_248z);
32
-
33
3
  /*! *****************************************************************************
34
4
  Copyright (c) Microsoft Corporation.
35
5
 
@@ -1974,16 +1944,17 @@ function sendMessageDotNet(message) {
1974
1944
  if (!checkDotNet())
1975
1945
  return undefined;
1976
1946
  var json = JSON.stringify(message);
1977
- window.parent.chrome.webview.postMessage(json)
1978
- .catch(function (e) {
1979
- throw new Error(e);
1980
- });
1947
+ try {
1948
+ window.parent.chrome.webview.postMessage(json);
1949
+ }
1950
+ catch (_a) {
1951
+ throw new Error('Failed to post message to dotNet.');
1952
+ }
1981
1953
  return message;
1982
1954
  }
1983
1955
  function sendMessageRuby(message) {
1984
1956
  if (!checkRuby())
1985
1957
  return undefined;
1986
- // const json = JSON.stringify(message)
1987
1958
  console.error('[POLLINATION-DEBUG]: sendMesssageRuby not yet implemented');
1988
1959
  return message;
1989
1960
  }
@@ -2014,55 +1985,36 @@ function getHost(key, defaultValue) {
2014
1985
  return typeof retrieved === 'string' ? retrieved.toLocaleLowerCase() : JSON.parse(retrieved).toLocaleLowerCase();
2015
1986
  }
2016
1987
 
2017
- var useGetHBJSON = function () {
1988
+ var useGetHbjson = function () {
2018
1989
  var host = getHost();
2019
1990
  var _a = useState(), messageResponse = _a[0], setMessageResponse = _a[1];
2020
1991
  var _b = useState(undefined), hbjson = _b[0], setHbjson = _b[1];
2021
- var rubyGetHBJSON = useCallback(function (key, selection, isPollinationModel) {
2022
- if (key === void 0) { key = ''; }
1992
+ var rubyGetHBJSON = useCallback(function (key, selection) {
1993
+ if (key === void 0) { key = performance.now().toString(); }
2023
1994
  if (selection === void 0) { selection = false; }
2024
- if (isPollinationModel === void 0) { isPollinationModel = false; }
2025
1995
  if (!checkRuby())
2026
1996
  return;
2027
- // ruby invoke
2028
- if (isPollinationModel) {
2029
- window.parent.sketchup.get_model(selection, {
2030
- onCompleted: function (res) {
2031
- var message = JSON.parse(res);
2032
- setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: message.Geometry, identifier: message.Identifier })); });
2033
- }
2034
- });
2035
- }
2036
- else {
2037
- window.parent.sketchup.get_geometry(key, selection, {
2038
- onCompleted: function (res) {
2039
- var message = JSON.parse(res);
2040
- setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: message.Geometry, identifier: message.Identifier })); });
2041
- }
2042
- });
2043
- }
1997
+ // TODO: why doesn't this function use the key?
1998
+ window.parent.sketchup.get_model(selection, {
1999
+ onCompleted: function (res) {
2000
+ var message = JSON.parse(res);
2001
+ setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: message.Geometry, identifier: message.Identifier })); });
2002
+ }
2003
+ });
2044
2004
  }, []);
2045
- var dotNetGetHBJSON = useCallback(function (key, selection, isPollinationModel) {
2046
- if (key === void 0) { key = ''; }
2005
+ var dotNetGetHBJSON = useCallback(function (key, selection) {
2006
+ if (key === void 0) { key = performance.now().toString(); }
2047
2007
  if (selection === void 0) { selection = false; }
2048
- if (isPollinationModel === void 0) { isPollinationModel = false; }
2049
2008
  if (!checkDotNet())
2050
2009
  return;
2051
2010
  var res = {
2052
2011
  Geometry: null,
2053
2012
  Identifier: null
2054
2013
  };
2055
- if (isPollinationModel) {
2056
- // @ts-ignore
2057
- res = window.parent.chrome.webview
2058
- .hostObjects.sync.hbjson.PassPollinationModel(selection);
2059
- setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: res.Geometry, identifier: res.Identifier })); });
2060
- }
2061
- else {
2062
- // @ts-ignore
2063
- res = window.parent.chrome.webview.hostObjects.sync.geometry.PassJsonGeometry(key, selection);
2064
- setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: res.Geometry, identifier: res.Identifier })); });
2065
- }
2014
+ // @ts-ignore
2015
+ res = window.parent.chrome.webview
2016
+ .hostObjects.sync.hbjson.PassPollinationModel(selection);
2017
+ setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: res.Geometry, identifier: res.Identifier })); });
2066
2018
  }, []);
2067
2019
  useEffect(function () {
2068
2020
  if (!messageResponse)
@@ -2084,7 +2036,7 @@ var useGetHBJSON = function () {
2084
2036
  }));
2085
2037
  }
2086
2038
  }, [messageResponse]);
2087
- var handler = useMemo(function () {
2039
+ var getHbjson = useMemo(function () {
2088
2040
  switch (host) {
2089
2041
  case 'sketchup':
2090
2042
  return rubyGetHBJSON;
@@ -2097,52 +2049,123 @@ var useGetHBJSON = function () {
2097
2049
  return {
2098
2050
  host: host,
2099
2051
  hbjson: hbjson,
2100
- handler: handler,
2052
+ getHbjson: getHbjson,
2101
2053
  };
2102
2054
  };
2103
2055
 
2104
- var useRunCommand = function () {
2056
+ var useGetGeometry = function () {
2105
2057
  var host = getHost();
2106
- var rhinoRunCommand = useCallback(function (commandString, commandOptions) {
2107
- var msgObject = {
2108
- action: 'RunCommand',
2109
- commandString: commandString,
2058
+ var _a = useState(), messageResponse = _a[0], setMessageResponse = _a[1];
2059
+ var _b = useState(undefined), geometry = _b[0], setGeometry = _b[1];
2060
+ var rubyGetGeometry = useCallback(function (key, selection) {
2061
+ if (key === void 0) { key = performance.now().toString(); }
2062
+ if (selection === void 0) { selection = false; }
2063
+ if (!checkRuby())
2064
+ return;
2065
+ // ruby invoke
2066
+ window.parent.sketchup.get_geometry(key, selection, {
2067
+ onCompleted: function (res) {
2068
+ var message = JSON.parse(res);
2069
+ setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: message.Geometry, identifier: message.Identifier })); });
2070
+ }
2071
+ });
2072
+ }, []);
2073
+ var dotNetGetGeometry = useCallback(function (key, selection) {
2074
+ if (key === void 0) { key = performance.now().toString(); }
2075
+ if (selection === void 0) { selection = false; }
2076
+ if (!checkDotNet())
2077
+ return;
2078
+ var res = {
2079
+ Geometry: null,
2080
+ Identifier: null
2110
2081
  };
2111
- sendMessageDotNet(msgObject);
2082
+ // @ts-ignore
2083
+ res = window.parent.chrome.webview.hostObjects.sync.geometry.PassJsonGeometry(key, selection);
2084
+ setMessageResponse(function (state) { return (__assign(__assign({}, state), { geometry: res.Geometry, identifier: res.Identifier })); });
2112
2085
  }, []);
2113
- var runCommand = useMemo(function () {
2086
+ useEffect(function () {
2087
+ if (!messageResponse)
2088
+ return;
2089
+ // @ts-ignore
2090
+ var bytes = new TextEncoder().encode(messageResponse.geometry);
2091
+ if (geometry) {
2092
+ geometry.arrayBuffer().then(function (data) {
2093
+ if (!lodash_isequal(bytes, new Uint8Array(data))) {
2094
+ setGeometry(new Blob([bytes], {
2095
+ type: 'application/json;charset=utf-8',
2096
+ }));
2097
+ }
2098
+ });
2099
+ }
2100
+ else {
2101
+ setGeometry(new Blob([bytes], {
2102
+ type: 'application/json;charset=utf-8',
2103
+ }));
2104
+ }
2105
+ }, [messageResponse]);
2106
+ var getGeometry = useMemo(function () {
2114
2107
  switch (host) {
2108
+ case 'sketchup':
2109
+ return rubyGetGeometry;
2115
2110
  case 'rhino':
2116
- return rhinoRunCommand;
2111
+ return dotNetGetGeometry;
2117
2112
  default:
2118
2113
  return undefined;
2119
2114
  }
2120
- }, [host, rhinoRunCommand]);
2115
+ }, [host, dotNetGetGeometry, rubyGetGeometry]);
2121
2116
  return {
2122
2117
  host: host,
2123
- runCommand: runCommand
2118
+ geometry: geometry,
2119
+ getGeometry: getGeometry,
2124
2120
  };
2125
2121
  };
2126
2122
 
2127
- var useSendCheckbox = function (_a) {
2128
- _a.action; _a.data; _a.uniqueId; _a.options; _a.platform; _a.isFocused;
2123
+ var useSendHbjson = function () {
2129
2124
  var host = getHost();
2130
- var _b = useState({}); _b[0]; _b[1];
2125
+ var _a = useState({}), state = _a[0], setState = _a[1];
2126
+ var rubySendHBJSON = useCallback(function (message, preview) {
2127
+ if (preview === void 0) { preview = true; }
2128
+ var response = sendMessageRuby(__assign({ action: preview ? 'DrawPollinationModel' : 'BakePollinationModel' }, message));
2129
+ setState(function (state) { return (__assign(__assign({}, state), { response: response })); });
2130
+ return response;
2131
+ }, []);
2132
+ var dotNetSendHBJSON = useCallback(function (message, preview) {
2133
+ if (preview === void 0) { preview = true; }
2134
+ var response = sendMessageDotNet(__assign({ action: preview ? 'DrawPollinationModel' : 'BakePollinationModel' }, message));
2135
+ setState(function (state) { return (__assign(__assign({}, state), { response: response })); });
2136
+ return response;
2137
+ }, []);
2138
+ var sendHBJSON = useMemo(function () {
2139
+ switch (host) {
2140
+ case 'sketchup':
2141
+ return rubySendHBJSON;
2142
+ case 'rhino':
2143
+ return dotNetSendHBJSON;
2144
+ case 'revit':
2145
+ return dotNetSendHBJSON;
2146
+ default:
2147
+ return undefined;
2148
+ }
2149
+ }, [dotNetSendHBJSON, host, rubySendHBJSON]);
2131
2150
  return ({
2132
- host: host
2151
+ host: host,
2152
+ state: state,
2153
+ sendHBJSON: sendHBJSON
2133
2154
  });
2134
2155
  };
2135
2156
 
2136
2157
  var useSendGeometry = function () {
2137
2158
  var host = getHost();
2138
2159
  var _a = useState({}), state = _a[0], setState = _a[1];
2139
- var rubySendGeometry = useCallback(function (message) {
2140
- var response = sendMessageRuby(message);
2160
+ var rubySendGeometry = useCallback(function (message, preview) {
2161
+ if (preview === void 0) { preview = true; }
2162
+ var response = sendMessageRuby(__assign({ action: preview ? 'DrawGeometry' : 'BakeGeometry' }, message));
2141
2163
  setState(function (state) { return (__assign(__assign({}, state), { response: response })); });
2142
2164
  return response;
2143
2165
  }, []);
2144
- var dotNetSendGeometry = useCallback(function (message) {
2145
- var response = sendMessageDotNet(message);
2166
+ var dotNetSendGeometry = useCallback(function (message, preview) {
2167
+ if (preview === void 0) { preview = true; }
2168
+ var response = sendMessageDotNet(__assign({ action: preview ? 'DrawGeometry' : 'BakeGeometry' }, message));
2146
2169
  setState(function (state) { return (__assign(__assign({}, state), { response: response })); });
2147
2170
  return response;
2148
2171
  }, []);
@@ -2165,7 +2188,30 @@ var useSendGeometry = function () {
2165
2188
  });
2166
2189
  };
2167
2190
 
2168
- var useSendSettings = function () {
2191
+ var useRunCommand = function () {
2192
+ var host = getHost();
2193
+ var rhinoRunCommand = useCallback(function (commandString, commandOptions) {
2194
+ var msgObject = {
2195
+ action: 'RunCommand',
2196
+ commandString: commandString,
2197
+ };
2198
+ sendMessageDotNet(msgObject);
2199
+ }, []);
2200
+ var runCommand = useMemo(function () {
2201
+ switch (host) {
2202
+ case 'rhino':
2203
+ return rhinoRunCommand;
2204
+ default:
2205
+ return undefined;
2206
+ }
2207
+ }, [host, rhinoRunCommand]);
2208
+ return {
2209
+ host: host,
2210
+ runCommand: runCommand
2211
+ };
2212
+ };
2213
+
2214
+ var useManageSettings = function () {
2169
2215
  var host = getHost();
2170
2216
  var rhinoSendSettings = useCallback(function (settings) {
2171
2217
  var message = {
@@ -2174,6 +2220,10 @@ var useSendSettings = function () {
2174
2220
  };
2175
2221
  return sendMessageDotNet(message);
2176
2222
  }, []);
2223
+ var rhinoGetSettings = useCallback(function () {
2224
+ var settings = window.parent.chrome.webview.hostObjects.sync.settings.GetModelSettings();
2225
+ return settings;
2226
+ }, []);
2177
2227
  var sendSettings = useMemo(function () {
2178
2228
  switch (host) {
2179
2229
  case 'rhino':
@@ -2182,14 +2232,23 @@ var useSendSettings = function () {
2182
2232
  return undefined;
2183
2233
  }
2184
2234
  }, [host, rhinoSendSettings]);
2235
+ var getSettings = useMemo(function () {
2236
+ switch (host) {
2237
+ case 'rhino':
2238
+ return rhinoGetSettings;
2239
+ default:
2240
+ return undefined;
2241
+ }
2242
+ }, [host, rhinoGetSettings]);
2185
2243
  return ({
2186
2244
  host: host,
2187
2245
  sendSettings: sendSettings,
2246
+ getSettings: getSettings
2188
2247
  });
2189
2248
  };
2190
2249
 
2191
2250
  var UTILSENDPOINT = process.env.REACT_APP_UTILS_ENDPOINT || 'https://utilities.staging.pollination.cloud';
2192
- var useHBJSONtoVTK = function () {
2251
+ var useHbjsontoVTK = function () {
2193
2252
  var _a = useState(false), loading = _a[0], setLoading = _a[1];
2194
2253
  var _b = useState(), vtk = _b[0], setVTK = _b[1];
2195
2254
  var fetchVTK = function (hbjson) {
@@ -2237,5 +2296,5 @@ var useHBJSONtoVTK = function () {
2237
2296
  };
2238
2297
  };
2239
2298
 
2240
- export { checkDotNet, checkRuby, getHost, sendMessageDotNet, sendMessageRuby, subscribeDotNet, useGetHBJSON, useHBJSONtoVTK, useRunCommand, useSendCheckbox, useSendGeometry, useSendSettings };
2299
+ export { checkDotNet, checkRuby, getHost, sendMessageDotNet, sendMessageRuby, subscribeDotNet, useGetGeometry, useGetHbjson, useHbjsontoVTK, useManageSettings, useRunCommand, useSendGeometry, useSendHbjson };
2241
2300
  //# sourceMappingURL=index.esm.js.map