@openremote/or-rules 1.2.0-snapshot.20240512160221

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.
Files changed (191) hide show
  1. package/README.md +31 -0
  2. package/lib/flow-viewer/components/confirmation-dialog.d.ts +18 -0
  3. package/lib/flow-viewer/components/confirmation-dialog.js +24 -0
  4. package/lib/flow-viewer/components/confirmation-dialog.js.map +1 -0
  5. package/lib/flow-viewer/components/connection-container.d.ts +6 -0
  6. package/lib/flow-viewer/components/connection-container.js +1 -0
  7. package/lib/flow-viewer/components/connection-container.js.map +1 -0
  8. package/lib/flow-viewer/components/connection-line.d.ts +22 -0
  9. package/lib/flow-viewer/components/connection-line.js +30 -0
  10. package/lib/flow-viewer/components/connection-line.js.map +1 -0
  11. package/lib/flow-viewer/components/context-menu.d.ts +28 -0
  12. package/lib/flow-viewer/components/context-menu.js +49 -0
  13. package/lib/flow-viewer/components/context-menu.js.map +1 -0
  14. package/lib/flow-viewer/components/editor-workspace.d.ts +66 -0
  15. package/lib/flow-viewer/components/editor-workspace.js +20 -0
  16. package/lib/flow-viewer/components/editor-workspace.js.map +1 -0
  17. package/lib/flow-viewer/components/flow-editor.d.ts +47 -0
  18. package/lib/flow-viewer/components/flow-editor.js +45 -0
  19. package/lib/flow-viewer/components/flow-editor.js.map +1 -0
  20. package/lib/flow-viewer/components/flow-node-socket.d.ts +31 -0
  21. package/lib/flow-viewer/components/flow-node-socket.js +36 -0
  22. package/lib/flow-viewer/components/flow-node-socket.js.map +1 -0
  23. package/lib/flow-viewer/components/flow-node.d.ts +23 -0
  24. package/lib/flow-viewer/components/flow-node.js +7 -0
  25. package/lib/flow-viewer/components/flow-node.js.map +1 -0
  26. package/lib/flow-viewer/components/internal-picker.d.ts +36 -0
  27. package/lib/flow-viewer/components/internal-picker.js +48 -0
  28. package/lib/flow-viewer/components/internal-picker.js.map +1 -0
  29. package/lib/flow-viewer/components/node-menu-item.d.ts +29 -0
  30. package/lib/flow-viewer/components/node-menu-item.js +34 -0
  31. package/lib/flow-viewer/components/node-menu-item.js.map +1 -0
  32. package/lib/flow-viewer/components/node-panel.d.ts +24 -0
  33. package/lib/flow-viewer/components/node-panel.js +60 -0
  34. package/lib/flow-viewer/components/node-panel.js.map +1 -0
  35. package/lib/flow-viewer/components/notification-dialog.d.ts +17 -0
  36. package/lib/flow-viewer/components/notification-dialog.js +23 -0
  37. package/lib/flow-viewer/components/notification-dialog.js.map +1 -0
  38. package/lib/flow-viewer/components/popup-modal.d.ts +23 -0
  39. package/lib/flow-viewer/components/popup-modal.js +55 -0
  40. package/lib/flow-viewer/components/popup-modal.js.map +1 -0
  41. package/lib/flow-viewer/components/rule-browser.d.ts +20 -0
  42. package/lib/flow-viewer/components/rule-browser.js +32 -0
  43. package/lib/flow-viewer/components/rule-browser.js.map +1 -0
  44. package/lib/flow-viewer/components/selectable-element.d.ts +23 -0
  45. package/lib/flow-viewer/components/selectable-element.js +1 -0
  46. package/lib/flow-viewer/components/selectable-element.js.map +1 -0
  47. package/lib/flow-viewer/components/selection-box.d.ts +16 -0
  48. package/lib/flow-viewer/components/selection-box.js +16 -0
  49. package/lib/flow-viewer/components/selection-box.js.map +1 -0
  50. package/lib/flow-viewer/components/top-bar.d.ts +21 -0
  51. package/lib/flow-viewer/components/top-bar.js +51 -0
  52. package/lib/flow-viewer/components/top-bar.js.map +1 -0
  53. package/lib/flow-viewer/components/workspace-contextmenu-options.d.ts +3 -0
  54. package/lib/flow-viewer/components/workspace-contextmenu-options.js +5 -0
  55. package/lib/flow-viewer/components/workspace-contextmenu-options.js.map +1 -0
  56. package/lib/flow-viewer/components/writable-dropdown.d.ts +13 -0
  57. package/lib/flow-viewer/components/writable-dropdown.js +5 -0
  58. package/lib/flow-viewer/components/writable-dropdown.js.map +1 -0
  59. package/lib/flow-viewer/converters/node-converter.d.ts +2 -0
  60. package/lib/flow-viewer/converters/node-converter.js +1 -0
  61. package/lib/flow-viewer/converters/node-converter.js.map +1 -0
  62. package/lib/flow-viewer/flow-viewer.d.ts +18 -0
  63. package/lib/flow-viewer/flow-viewer.js +1 -0
  64. package/lib/flow-viewer/flow-viewer.js.map +1 -0
  65. package/lib/flow-viewer/models/camera.d.ts +5 -0
  66. package/lib/flow-viewer/models/camera.js +1 -0
  67. package/lib/flow-viewer/models/camera.js.map +1 -0
  68. package/lib/flow-viewer/models/context-menu-button.d.ts +13 -0
  69. package/lib/flow-viewer/models/context-menu-button.js +1 -0
  70. package/lib/flow-viewer/models/context-menu-button.js.map +1 -0
  71. package/lib/flow-viewer/models/light-node-collection.d.ts +5 -0
  72. package/lib/flow-viewer/models/light-node-collection.js +1 -0
  73. package/lib/flow-viewer/models/light-node-collection.js.map +1 -0
  74. package/lib/flow-viewer/models/status.d.ts +6 -0
  75. package/lib/flow-viewer/models/status.js +1 -0
  76. package/lib/flow-viewer/models/status.js.map +1 -0
  77. package/lib/flow-viewer/node-structure/copy.machine.d.ts +4 -0
  78. package/lib/flow-viewer/node-structure/copy.machine.js +1 -0
  79. package/lib/flow-viewer/node-structure/copy.machine.js.map +1 -0
  80. package/lib/flow-viewer/node-structure/identity.assigner.d.ts +5 -0
  81. package/lib/flow-viewer/node-structure/identity.assigner.js +1 -0
  82. package/lib/flow-viewer/node-structure/identity.assigner.js.map +1 -0
  83. package/lib/flow-viewer/node-structure/identity.dom.link.d.ts +5 -0
  84. package/lib/flow-viewer/node-structure/identity.dom.link.js +1 -0
  85. package/lib/flow-viewer/node-structure/identity.dom.link.js.map +1 -0
  86. package/lib/flow-viewer/node-structure/index.d.ts +5 -0
  87. package/lib/flow-viewer/node-structure/index.js +1 -0
  88. package/lib/flow-viewer/node-structure/index.js.map +1 -0
  89. package/lib/flow-viewer/node-structure/socket.type.matcher.d.ts +5 -0
  90. package/lib/flow-viewer/node-structure/socket.type.matcher.js +1 -0
  91. package/lib/flow-viewer/node-structure/socket.type.matcher.js.map +1 -0
  92. package/lib/flow-viewer/node-structure/utils.d.ts +13 -0
  93. package/lib/flow-viewer/node-structure/utils.js +1 -0
  94. package/lib/flow-viewer/node-structure/utils.js.map +1 -0
  95. package/lib/flow-viewer/services/copy-paste-manager.d.ts +11 -0
  96. package/lib/flow-viewer/services/copy-paste-manager.js +1 -0
  97. package/lib/flow-viewer/services/copy-paste-manager.js.map +1 -0
  98. package/lib/flow-viewer/services/exporter.d.ts +9 -0
  99. package/lib/flow-viewer/services/exporter.js +1 -0
  100. package/lib/flow-viewer/services/exporter.js.map +1 -0
  101. package/lib/flow-viewer/services/input.d.ts +17 -0
  102. package/lib/flow-viewer/services/input.js +1 -0
  103. package/lib/flow-viewer/services/input.js.map +1 -0
  104. package/lib/flow-viewer/services/integration.d.ts +7 -0
  105. package/lib/flow-viewer/services/integration.js +1 -0
  106. package/lib/flow-viewer/services/integration.js.map +1 -0
  107. package/lib/flow-viewer/services/modal.d.ts +8 -0
  108. package/lib/flow-viewer/services/modal.js +8 -0
  109. package/lib/flow-viewer/services/modal.js.map +1 -0
  110. package/lib/flow-viewer/services/project.d.ts +39 -0
  111. package/lib/flow-viewer/services/project.js +1 -0
  112. package/lib/flow-viewer/services/project.js.map +1 -0
  113. package/lib/flow-viewer/services/shortcuts.d.ts +8 -0
  114. package/lib/flow-viewer/services/shortcuts.js +1 -0
  115. package/lib/flow-viewer/services/shortcuts.js.map +1 -0
  116. package/lib/flow-viewer/styles/editor-workspace-style.d.ts +1 -0
  117. package/lib/flow-viewer/styles/editor-workspace-style.js +53 -0
  118. package/lib/flow-viewer/styles/editor-workspace-style.js.map +1 -0
  119. package/lib/flow-viewer/styles/flow-node-style.d.ts +1 -0
  120. package/lib/flow-viewer/styles/flow-node-style.js +101 -0
  121. package/lib/flow-viewer/styles/flow-node-style.js.map +1 -0
  122. package/lib/flow-viewer/styles/picker-styles.d.ts +1 -0
  123. package/lib/flow-viewer/styles/picker-styles.js +25 -0
  124. package/lib/flow-viewer/styles/picker-styles.js.map +1 -0
  125. package/lib/flow-viewer/utils.d.ts +25 -0
  126. package/lib/flow-viewer/utils.js +1 -0
  127. package/lib/flow-viewer/utils.js.map +1 -0
  128. package/lib/index.d.ts +259 -0
  129. package/lib/index.js +52 -0
  130. package/lib/index.js.map +1 -0
  131. package/lib/json-viewer/forms/or-rule-form-email-message.d.ts +20 -0
  132. package/lib/json-viewer/forms/or-rule-form-email-message.js +12 -0
  133. package/lib/json-viewer/forms/or-rule-form-email-message.js.map +1 -0
  134. package/lib/json-viewer/forms/or-rule-form-push-notification.d.ts +21 -0
  135. package/lib/json-viewer/forms/or-rule-form-push-notification.js +47 -0
  136. package/lib/json-viewer/forms/or-rule-form-push-notification.js.map +1 -0
  137. package/lib/json-viewer/forms/or-rule-form-webhook.d.ts +19 -0
  138. package/lib/json-viewer/forms/or-rule-form-webhook.js +102 -0
  139. package/lib/json-viewer/forms/or-rule-form-webhook.js.map +1 -0
  140. package/lib/json-viewer/modals/or-rule-notification-modal.d.ts +24 -0
  141. package/lib/json-viewer/modals/or-rule-notification-modal.js +5 -0
  142. package/lib/json-viewer/modals/or-rule-notification-modal.js.map +1 -0
  143. package/lib/json-viewer/modals/or-rule-radial-modal.d.ts +25 -0
  144. package/lib/json-viewer/modals/or-rule-radial-modal.js +17 -0
  145. package/lib/json-viewer/modals/or-rule-radial-modal.js.map +1 -0
  146. package/lib/json-viewer/modals/or-rule-webhook-modal.d.ts +12 -0
  147. package/lib/json-viewer/modals/or-rule-webhook-modal.js +8 -0
  148. package/lib/json-viewer/modals/or-rule-webhook-modal.js.map +1 -0
  149. package/lib/json-viewer/or-rule-action-attribute.d.ts +32 -0
  150. package/lib/json-viewer/or-rule-action-attribute.js +33 -0
  151. package/lib/json-viewer/or-rule-action-attribute.js.map +1 -0
  152. package/lib/json-viewer/or-rule-action-notification.d.ts +20 -0
  153. package/lib/json-viewer/or-rule-action-notification.js +44 -0
  154. package/lib/json-viewer/or-rule-action-notification.js.map +1 -0
  155. package/lib/json-viewer/or-rule-action-webhook.d.ts +10 -0
  156. package/lib/json-viewer/or-rule-action-webhook.js +20 -0
  157. package/lib/json-viewer/or-rule-action-webhook.js.map +1 -0
  158. package/lib/json-viewer/or-rule-asset-query.d.ts +50 -0
  159. package/lib/json-viewer/or-rule-asset-query.js +98 -0
  160. package/lib/json-viewer/or-rule-asset-query.js.map +1 -0
  161. package/lib/json-viewer/or-rule-condition.d.ts +10 -0
  162. package/lib/json-viewer/or-rule-condition.js +29 -0
  163. package/lib/json-viewer/or-rule-condition.js.map +1 -0
  164. package/lib/json-viewer/or-rule-json-viewer.d.ts +54 -0
  165. package/lib/json-viewer/or-rule-json-viewer.js +34 -0
  166. package/lib/json-viewer/or-rule-json-viewer.js.map +1 -0
  167. package/lib/json-viewer/or-rule-then-otherwise.d.ts +11 -0
  168. package/lib/json-viewer/or-rule-then-otherwise.js +113 -0
  169. package/lib/json-viewer/or-rule-then-otherwise.js.map +1 -0
  170. package/lib/json-viewer/or-rule-trigger-query.d.ts +26 -0
  171. package/lib/json-viewer/or-rule-trigger-query.js +57 -0
  172. package/lib/json-viewer/or-rule-trigger-query.js.map +1 -0
  173. package/lib/json-viewer/or-rule-when.d.ts +1 -0
  174. package/lib/json-viewer/or-rule-when.js +136 -0
  175. package/lib/json-viewer/or-rule-when.js.map +1 -0
  176. package/lib/or-rule-list.d.ts +56 -0
  177. package/lib/or-rule-list.js +111 -0
  178. package/lib/or-rule-list.js.map +1 -0
  179. package/lib/or-rule-text-viewer.d.ts +27 -0
  180. package/lib/or-rule-text-viewer.js +25 -0
  181. package/lib/or-rule-text-viewer.js.map +1 -0
  182. package/lib/or-rule-validity.d.ts +34 -0
  183. package/lib/or-rule-validity.js +71 -0
  184. package/lib/or-rule-validity.js.map +1 -0
  185. package/lib/or-rule-viewer.d.ts +47 -0
  186. package/lib/or-rule-viewer.js +88 -0
  187. package/lib/or-rule-viewer.js.map +1 -0
  188. package/lib/style.d.ts +2 -0
  189. package/lib/style.js +64 -0
  190. package/lib/style.js.map +1 -0
  191. package/package.json +42 -0
package/README.md ADDED
@@ -0,0 +1,31 @@
1
+ # @openremote/or-rules-editor \<or-rules-editor\>
2
+ [![NPM Version][npm-image]][npm-url]
3
+ [![Linux Build][travis-image]][travis-url]
4
+ [![Test Coverage][coveralls-image]][coveralls-url]
5
+
6
+ Web Component for displaying a rules editor. This component requires an OpenRemote Manager to retrieve/save rules.
7
+
8
+ ## Install
9
+ ```bash
10
+ npm i @openremote/or-rules-editor
11
+ yarn add @openremote/or-rules-editor
12
+ ```
13
+
14
+ ## Usage
15
+ For a full list of properties, methods and options refer to the TypeDoc generated [documentation]().
16
+
17
+
18
+ ## Supported Browsers
19
+ The last 2 versions of all modern browsers are supported, including Chrome, Safari, Opera, Firefox, Edge. In addition,
20
+ Internet Explorer 11 is also supported.
21
+
22
+
23
+ ## License
24
+ [GNU AGPL](https://www.gnu.org/licenses/agpl-3.0.en.html)
25
+
26
+ [npm-image]: https://img.shields.io/npm/v/live-xxx.svg
27
+ [npm-url]: https://npmjs.org/package/@openremote/or-rules-editor
28
+ [travis-image]: https://img.shields.io/travis/live-js/live-xxx/master.svg
29
+ [travis-url]: https://travis-ci.org/live-js/live-xxx
30
+ [coveralls-image]: https://img.shields.io/coveralls/live-js/live-xxx/master.svg
31
+ [coveralls-url]: https://coveralls.io/r/live-js/live-xxx?branch=master
@@ -0,0 +1,18 @@
1
+ import { LitElement } from "lit";
2
+ declare const ConfirmationDialog_base: (new (...args: any[]) => {
3
+ _i18nextJustInitialized: boolean;
4
+ connectedCallback(): void;
5
+ disconnectedCallback(): void;
6
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
7
+ initCallback: (options: import("i18next").InitOptions) => void;
8
+ langChangedCallback: () => void;
9
+ readonly isConnected: boolean;
10
+ }) & typeof LitElement;
11
+ export declare class ConfirmationDialog extends ConfirmationDialog_base {
12
+ agreeText: string;
13
+ disagreeText: string;
14
+ question: string;
15
+ static get styles(): import("lit").CSSResult;
16
+ protected render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ export {};
@@ -0,0 +1,24 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,o,r){var i,n=arguments.length,a=n<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,o,r);else for(var s=t.length-1;s>=0;s--)(i=t[s])&&(a=(n<3?i(a):n>3?i(e,o,a):i(e,o))||a);return n>3&&a&&Object.defineProperty(e,o,a),a};import{LitElement,html,css}from"lit";import{customElement,property}from"lit/decorators.js";import{i18next,translate}from"@openremote/or-translate";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";let ConfirmationDialog=class extends(translate(i18next)(LitElement)){constructor(){super(...arguments),this.agreeText=i18next.t("ok"),this.disagreeText=i18next.t("cancel"),this.question=i18next.t("areYouSure","Are you sure?")}static get styles(){return css`
2
+ .question{
3
+ width: 100%;
4
+ padding: 15px 5px 25px 5px;
5
+ text-align: center;
6
+ }
7
+ .container{
8
+ display: flex;
9
+ flex-direction: row;
10
+ justify-content: space-between;
11
+ justify-content: space-evenly;
12
+ justify-content: space-around;
13
+ }`}render(){return html`
14
+ <div class="question">${this.question}</div>
15
+ <div class="container">
16
+ <or-mwc-input type="${InputType.BUTTON}" unElevated label="${this.agreeText}"
17
+ @or-mwc-input-changed="${()=>{this.dispatchEvent(new CustomEvent("agreed"))}}">
18
+ </or-mwc-input>
19
+
20
+ <or-mwc-input type="button" label="${this.disagreeText}"
21
+ @or-mwc-input-changed="${()=>{this.dispatchEvent(new CustomEvent("disagreed"))}}">
22
+ </or-mwc-input>
23
+ </div>
24
+ `}};__decorate([property({type:String})],ConfirmationDialog.prototype,"agreeText",void 0),__decorate([property({type:String})],ConfirmationDialog.prototype,"disagreeText",void 0),__decorate([property({type:String})],ConfirmationDialog.prototype,"question",void 0),ConfirmationDialog=__decorate([customElement("confirmation-dialog")],ConfirmationDialog);export{ConfirmationDialog};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirmation-dialog.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/confirmation-dialog.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAGhE,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;IAA/D;;QACgC,cAAS,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5B,iBAAY,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnC,aAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAgC3F,CAAC;IA9BU,MAAM,KAAK,MAAM;QACpB,OAAO,GAAG,CAAA;;;;;;;;;;;;UAYR,CAAC;IACP,CAAC;IAES,MAAM;QACZ,OAAO,IAAI,CAAA;gCACa,IAAI,CAAC,QAAQ;;kCAEX,SAAS,CAAC,MAAM,uBAAuB,IAAI,CAAC,SAAS;yCAC9C,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;;;iDAGhD,IAAI,CAAC,YAAY;yCACzB,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;;;SAG3F,CAAC;IACN,CAAC;CACJ,CAAA;AAlCsC;IAAlC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qDAAoC;AAC5B;IAAlC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAA2C;AACnC;IAAlC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAA4D;AAH9E,kBAAkB;IAD9B,aAAa,CAAC,qBAAqB,CAAC;GACxB,kBAAkB,CAmC9B"}
@@ -0,0 +1,6 @@
1
+ import { LitElement } from "lit";
2
+ export declare class ConnectionContainer extends LitElement {
3
+ private workspace;
4
+ constructor();
5
+ protected render(): import("lit-html").TemplateResult<1>;
6
+ }
@@ -0,0 +1 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,o,n){var r,c=arguments.length,i=c<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(e,t,o,n);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(i=(c<3?r(i):c>3?r(t,o,i):r(t,o))||i);return c>3&&i&&Object.defineProperty(t,o,i),i};import{LitElement,html}from"lit";import{customElement,property}from"lit/decorators.js";import{repeat}from"lit/directives/repeat.js";import{project}from"./flow-editor";let ConnectionContainer=class extends LitElement{constructor(){super(),project.addListener("connectioncreated",(()=>{this.requestUpdate()})),project.addListener("connectionremoved",(()=>{this.requestUpdate()})),project.addListener("cleared",(()=>{this.requestUpdate()}))}render(){return html`${repeat(project.connections,(e=>e.from+e.to),(e=>html`<connection-line .workspace="${this.workspace}" .connection="${e}"></connection-line>`))}`}};__decorate([property({attribute:!1})],ConnectionContainer.prototype,"workspace",void 0),ConnectionContainer=__decorate([customElement("connection-container")],ConnectionContainer);export{ConnectionContainer};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-container.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/connection-container.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGjC,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU;IAG/C;QACI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,EAAE;YAChC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,MAAM;QACZ,OAAO,IAAI,CAAA,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,GAAG,CAAC,CAAC,EAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAA,gCAAgC,IAAI,CAAC,SAAS,kBAAkB,CAAC,sBAAsB,CAAC,EAAE,CAAC;IAC5K,CAAC;CACJ,CAAA;AAlB2C;IAAvC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;sDAAqC;AAD3D,mBAAmB;IAD/B,aAAa,CAAC,sBAAsB,CAAC;GACzB,mBAAmB,CAmB/B"}
@@ -0,0 +1,22 @@
1
+ import { NodeConnection } from "@openremote/model";
2
+ import { SelectableElement } from "./selectable-element";
3
+ import { EditorWorkspace } from "./editor-workspace";
4
+ export declare class ConnectionLine extends SelectableElement {
5
+ connection: NodeConnection;
6
+ workspace: EditorWorkspace;
7
+ private polylineId;
8
+ private fromNodeElement;
9
+ private toNodeElement;
10
+ private fromElement;
11
+ private toElement;
12
+ private resizeObserver;
13
+ private readonly fancyLine;
14
+ private readonly curveIntensity;
15
+ constructor();
16
+ disconnectedCallback(): void;
17
+ protected firstUpdated(): void;
18
+ protected render(): import("lit-html").TemplateResult<1>;
19
+ static get styles(): import("lit").CSSResult;
20
+ private nodeChanged;
21
+ private get isInvalid();
22
+ }
@@ -0,0 +1,30 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,o,n){var i,s=arguments.length,r=s<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,o,n);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(r=(s<3?i(r):s>3?i(t,o,r):i(t,o))||r);return s>3&&r&&Object.defineProperty(t,o,r),r};import{html,css}from"lit";import{customElement,property}from"lit/decorators.js";import{IdentityDomLink,IdentityAssigner,NodeUtilities}from"../node-structure";import{ResizeObserver}from"resize-observer";import{SelectableElement}from"./selectable-element";import{project}from"./flow-editor";let ConnectionLine=class extends SelectableElement{constructor(){super(),this.fancyLine=!0,this.curveIntensity=1,this.nodeChanged=()=>{this.requestUpdate()},this.polylineId=IdentityAssigner.generateIdentity()}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver.disconnect(),project.removeListener("connectionremoved",this.nodeChanged)}firstUpdated(){super.firstUpdated();const e=this.shadowRoot.getElementById(this.polylineId);e&&this.setHandle(e)}render(){if(this.isInvalid){const e=NodeUtilities.getSocketFromID(this.connection.from,project.nodes),t=NodeUtilities.getSocketFromID(this.connection.to,project.nodes);if(this.fromNodeElement=IdentityDomLink.map[e.nodeId],this.toNodeElement=IdentityDomLink.map[t.nodeId],this.fromElement=IdentityDomLink.map[e.id],this.toElement=IdentityDomLink.map[t.id],this.isInvalid)return console.warn(this.fromNodeElement),console.warn(this.toNodeElement),console.warn(this.fromElement),console.warn(this.toElement),console.warn("Attempt to render invalid connection"),html``;this.fromNodeElement.addEventListener("updated",this.nodeChanged),this.toNodeElement.addEventListener("updated",this.nodeChanged),this.resizeObserver=new ResizeObserver(this.nodeChanged),this.resizeObserver.observe(this.fromNodeElement),this.resizeObserver.observe(this.toNodeElement)}const e=this.workspace.clientRect,t=this.fromElement.connectionPosition,o=this.toElement.connectionPosition;if(this.fancyLine){const n=t.x-e.left,i=t.y-e.top,s=o.x-e.left,r=o.y-e.top,l=this.curveIntensity*(Math.abs(n-s)/2);return html`<svg style="stroke-width: ${this.workspace.camera.zoom*(this.selected?5:3)}px;">
2
+ <path id="${this.polylineId}"
3
+ d="M ${n} ${i} C ${n+l} ${i}, ${s-l} ${r}, ${s} ${r}"
4
+ selected="${this.selected}"
5
+ />
6
+ </svg>`}return html`<svg style="stroke-width: ${this.workspace.camera.zoom*(this.selected?5:3)}px;"><polyline id="${this.polylineId}"
7
+ selected="${this.selected}"
8
+ points="
9
+ ${t.x-e.left}, ${t.y-e.top}
10
+ ${o.x-e.left}, ${o.y-e.top}"
11
+ ></polyline>
12
+ </svg>`}static get styles(){return css`
13
+ svg{
14
+ fill: none;
15
+ overflow: visible;
16
+ position: absolute;
17
+ pointer-events: none;
18
+ stroke-linejoin: round;
19
+ }
20
+ path, line{
21
+ position: absolute;
22
+ pointer-events: all;
23
+ }
24
+ path:hover, line:hover, path[selected = true], line[selected = true]{
25
+ stroke: var(--highlight);
26
+ }
27
+ text{
28
+ fill: red;
29
+ stroke: none;
30
+ }`}get isInvalid(){return!(this.fromNodeElement&&this.toNodeElement&&this.fromElement&&this.toElement)}};__decorate([property({attribute:!1})],ConnectionLine.prototype,"connection",void 0),__decorate([property({attribute:!1})],ConnectionLine.prototype,"workspace",void 0),__decorate([property({type:String})],ConnectionLine.prototype,"polylineId",void 0),ConnectionLine=__decorate([customElement("connection-line")],ConnectionLine);export{ConnectionLine};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-line.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/connection-line.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { LitElement } from "lit";
2
+ import { ContextMenuEntry } from "../models/context-menu-button";
3
+ declare const ContextMenu_base: (new (...args: any[]) => {
4
+ _i18nextJustInitialized: boolean;
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
8
+ initCallback: (options: import("i18next").InitOptions) => void;
9
+ langChangedCallback: () => void;
10
+ readonly isConnected: boolean;
11
+ }) & typeof LitElement;
12
+ export declare class ContextMenu extends ContextMenu_base {
13
+ static get opened(): boolean;
14
+ static get styles(): import("lit").CSSResult;
15
+ static open(x: number, y: number, container: Element, buttons: (ContextMenuEntry)[]): void;
16
+ static close(): void;
17
+ private static main;
18
+ private entries;
19
+ private isOpen;
20
+ private container;
21
+ protected firstUpdated(): void;
22
+ protected updated(): void;
23
+ protected render(): import("lit-html").TemplateResult<1>;
24
+ private closeCallback;
25
+ private buttonTemplate;
26
+ private separatorTemplate;
27
+ }
28
+ export {};
@@ -0,0 +1,49 @@
1
+ var ContextMenu_1,__decorate=this&&this.__decorate||function(t,e,n,o){var i,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,n,o);else for(var a=t.length-1;a>=0;a--)(i=t[a])&&(s=(r<3?i(s):r>3?i(e,n,s):i(e,n))||s);return r>3&&s&&Object.defineProperty(e,n,s),s};import{LitElement,html,css}from"lit";import{customElement,property}from"lit/decorators.js";import{translate,i18next}from"@openremote/or-translate";let ContextMenu=ContextMenu_1=class extends(translate(i18next)(LitElement)){constructor(){super(...arguments),this.entries=[],this.isOpen=!1,this.closeCallback=()=>{ContextMenu_1.close()}}static get opened(){return ContextMenu_1.main.isOpen}static get styles(){return css`
2
+ :host{
3
+ display: inline-block;
4
+ position: fixed;
5
+ background: white;
6
+ outline: 1px solid rgb(200,200,200);
7
+ box-shadow: rgba(0, 0, 0, 0.05) 0 2px 4px;
8
+ font-size: 13px;
9
+ z-index: 1000000;
10
+ }
11
+ .context-menu-button{
12
+ color: rgb(0,0,0);
13
+ display: grid;
14
+ align-items: center;
15
+ justify-items: start;
16
+ grid-template-rows: 32px;
17
+ grid-template-columns: 32px 220px;
18
+ grid-template-areas:
19
+ "icon label";
20
+ }
21
+ .context-menu-button:hover{
22
+ background: whitesmoke;
23
+ }
24
+ .label
25
+ {
26
+ grid-area: label;
27
+ }
28
+ or-icon{
29
+ justify-self: center;
30
+ grid-area: icon;
31
+ height: 16px;
32
+ width: 16px;
33
+ }
34
+ .muted{
35
+ pointer-events: none;
36
+ color: rgb(150,150,150);
37
+ }
38
+ .context-menu-separator{
39
+ --thickness: 1px;
40
+ border: 0;
41
+ height: var(--thickness);
42
+ border-bottom: solid var(--thickness);
43
+ border-color: rgb(234,234,234);
44
+ padding: 0;
45
+ margin: 5px 10px calc(5px - var(--thickness)) 10px;
46
+ }`}static open(t,e,n,o){ContextMenu_1.main.container=n,ContextMenu_1.main.style.top=e+"px",ContextMenu_1.main.style.left=t+"px",window.addEventListener("mousedown",ContextMenu_1.main.closeCallback),window.addEventListener("blur",ContextMenu_1.main.closeCallback),window.addEventListener("wheel",ContextMenu_1.main.closeCallback),ContextMenu_1.main.entries=o,ContextMenu_1.main.isOpen=!0}static close(){window.removeEventListener("mousedown",ContextMenu_1.main.closeCallback),window.removeEventListener("blur",ContextMenu_1.main.closeCallback),window.removeEventListener("wheel",ContextMenu_1.main.closeCallback),ContextMenu_1.main.isOpen=!1}firstUpdated(){ContextMenu_1.main=this}updated(){if(!this.container)return;const t=this.container.getBoundingClientRect(),e=this.getBoundingClientRect();e.top+e.height>t.bottom&&(this.style.top=e.top-e.height+"px"),e.left+e.width>t.right&&(this.style.left=t.right-e.width+"px")}render(){if(this.style.display=this.isOpen?"unset":"none",!this.isOpen)return html``;const t=this.entries.map((t=>{switch(t.type){case"button":return this.buttonTemplate(t);case"separator":return this.separatorTemplate()}}));return html`${t.length>0?t:html`<div class="context-menu-button muted">...</div>`}`}buttonTemplate(t){return html`
47
+ <div class="context-menu-button ${t.disabled?"muted":""}" @mousedown="${e=>{1===e.buttons&&(ContextMenu_1.close(),t.action&&t.action(),e.stopImmediatePropagation(),e.stopPropagation())}}">
48
+ ${t.icon?html`<or-icon icon="${t.icon}"></or-icon>`:null}
49
+ <span class="label">${t.label}</span></div>`}separatorTemplate(){return html`<div class="context-menu-separator"></div>`}};__decorate([property({attribute:!1})],ContextMenu.prototype,"isOpen",void 0),ContextMenu=ContextMenu_1=__decorate([customElement("context-menu")],ContextMenu);export{ContextMenu};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/context-menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { LitElement } from "lit";
2
+ import { Node } from "@openremote/model";
3
+ import { FlowEditor } from "./flow-editor";
4
+ import { Camera } from "../models/camera";
5
+ declare const EditorWorkspace_base: (new (...args: any[]) => {
6
+ _i18nextJustInitialized: boolean;
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
10
+ initCallback: (options: import("i18next").InitOptions) => void;
11
+ langChangedCallback: () => void;
12
+ readonly isConnected: boolean;
13
+ }) & typeof LitElement;
14
+ export declare class EditorWorkspace extends EditorWorkspace_base {
15
+ get clientRect(): ClientRect;
16
+ static get styles(): import("lit").CSSResult;
17
+ get halfSize(): {
18
+ x: number;
19
+ y: number;
20
+ };
21
+ private get isCameraInDefaultPosition();
22
+ camera: Camera;
23
+ topNodeZindex: number;
24
+ scrollSensitivity: number;
25
+ zoomLowerBound: number;
26
+ zoomUpperBound: number;
27
+ application: FlowEditor;
28
+ private connectionDragging;
29
+ private connectionFrom;
30
+ private connectionTo;
31
+ private isPanning;
32
+ private cachedClientRect;
33
+ constructor();
34
+ resetCamera(): void;
35
+ fitCamera(nodes: Node[], padding?: number): void;
36
+ offsetToWorld(point: {
37
+ x?: number;
38
+ y?: number;
39
+ }): {
40
+ x: number;
41
+ y: number;
42
+ };
43
+ worldToOffset(point: {
44
+ x?: number;
45
+ y?: number;
46
+ }): {
47
+ x: number;
48
+ y: number;
49
+ };
50
+ pageToOffset(point: {
51
+ x?: number;
52
+ y?: number;
53
+ }): {
54
+ x: number;
55
+ y: number;
56
+ };
57
+ pasteAt(x: number, y: number): Promise<void>;
58
+ protected firstUpdated(): void;
59
+ protected render(): import("lit-html").TemplateResult<1>;
60
+ private startPan;
61
+ private onMove;
62
+ private onZoom;
63
+ private onEmptyConnectionRelease;
64
+ private stopPan;
65
+ }
66
+ export {};
@@ -0,0 +1,20 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,o,i){var n,r=arguments.length,s=r<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,o,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(s=(r<3?n(s):r>3?n(e,o,s):n(e,o))||s);return r>3&&s&&Object.defineProperty(e,o,s),s},__awaiter=this&&this.__awaiter||function(t,e,o,i){return new(o||(o=Promise))((function(n,r){function s(t){try{c(i.next(t))}catch(t){r(t)}}function a(t){try{c(i.throw(t))}catch(t){r(t)}}function c(t){var e;t.done?n(t.value):(e=t.value,e instanceof o?e:new o((function(t){t(e)}))).then(s,a)}c((i=i.apply(t,e||[])).next())}))};import{LitElement,html}from"lit";import{customElement,property}from"lit/decorators.js";import{repeat}from"lit/directives/repeat.js";import{IdentityDomLink}from"../node-structure";import{List}from"linqts";import{EditorWorkspaceStyle}from"../styles/editor-workspace-style";import{i18next,translate}from"@openremote/or-translate";import{ContextMenu}from"./context-menu";import{project,input,copyPasteManager}from"./flow-editor";import{createContextMenuButtons}from"./workspace-contextmenu-options";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";let EditorWorkspace=class extends(translate(i18next)(LitElement)){get clientRect(){return this.cachedClientRect}static get styles(){return EditorWorkspaceStyle}get halfSize(){const t=this.cachedClientRect;return{x:t.width/2,y:t.height/2}}get isCameraInDefaultPosition(){return Math.abs(this.camera.x)<.05&&Math.abs(this.camera.y)<.05&&this.camera.zoom>.95&&this.camera.zoom<1.05}constructor(){super(),this.camera={x:0,y:0,zoom:1},this.topNodeZindex=1,this.scrollSensitivity=1.25,this.zoomLowerBound=.2,this.zoomUpperBound=10,this.connectionDragging=!1,this.connectionFrom={x:0,y:0},this.connectionTo={x:0,y:0},this.isPanning=!1,this.onMove=t=>{const e=window.devicePixelRatio;this.camera={x:this.camera.x+t.movementX/this.camera.zoom/e,y:this.camera.y+t.movementY/this.camera.zoom/e,zoom:this.camera.zoom},this.dispatchEvent(new CustomEvent("pan"))},this.onZoom=t=>{if(this.connectionDragging)return;if(this.isPanning)return;const e=.9*this.scrollSensitivity,o=t.deltaY<0?this.camera.zoom*e:this.camera.zoom/e;o<this.zoomLowerBound||o>this.zoomUpperBound||(this.camera={x:this.camera.x,y:this.camera.y,zoom:o},this.dispatchEvent(new CustomEvent("zoom")))},this.onEmptyConnectionRelease=t=>{project.isCurrentlyConnecting&&project.endConnectionDrag(t,null,!1)},this.stopPan=()=>{this.isPanning&&(window.removeEventListener("mousemove",this.onMove),this.isPanning=!1)},project.addListener("nodeadded",(t=>{this.requestUpdate()})),project.addListener("noderemoved",(t=>{this.requestUpdate()})),project.addListener("cleared",(()=>{this.requestUpdate()})),project.addListener("connectionstart",((t,e)=>{if(1!==t.buttons)return;const o=IdentityDomLink.map[e.id].connectionPosition;this.connectionFrom=this.pageToOffset(o),this.addEventListener("mousemove",project.connectionDragging),this.addEventListener("mouseup",this.onEmptyConnectionRelease)})),project.addListener("connecting",(t=>{this.connectionTo={x:t.pageX-this.clientRect.left,y:t.pageY-this.clientRect.top},this.connectionDragging=!0})),project.addListener("connectionend",(()=>{this.connectionDragging=!1,this.removeEventListener("mousemove",project.connectionDragging)})),project.addListener("fitview",(()=>{this.fitCamera(project.nodes)})),window.addEventListener("resize",(()=>{this.cachedClientRect=this.getBoundingClientRect(),this.dispatchEvent(new CustomEvent("pan"))})),this.addEventListener("mousedown",(t=>{this.startPan(t),1===t.buttons&&input.clearSelection()})),this.addEventListener("contextmenu",(t=>{const e=createContextMenuButtons(this,t);ContextMenu.open(t.pageX,t.pageY,this,e),t.preventDefault()})),project.workspace=this,this.addEventListener("wheel",this.onZoom,{passive:!0})}resetCamera(){this.camera={x:0,y:0,zoom:1},this.dispatchEvent(new CustomEvent("pan")),this.dispatchEvent(new CustomEvent("zoom"))}fitCamera(t,e=25){const o=new List;if(o.AddRange(t),0==o.Count())return;const i=o.OrderBy((t=>t.position.x)).First(),n=o.OrderBy((t=>t.position.y)).First(),r=o.OrderByDescending((t=>t.position.x+IdentityDomLink.map[t.id].scrollWidth)).First(),s=o.OrderByDescending((t=>t.position.y+IdentityDomLink.map[t.id].scrollHeight)).First(),a=IdentityDomLink.map[r.id].scrollWidth,c=IdentityDomLink.map[s.id].scrollHeight,p=i.position.x-e,d=r.position.x+e+a,h=s.position.y+e+c,m=n.position.y-e,l=d-p,u=h-m,y=this.clientRect,v=(p+d)/2,g=(h+m)/2,w=Math.min(y.width/l,y.height/u);this.camera={x:-v,y:-g,zoom:Math.min(Math.max(this.zoomLowerBound,w),this.zoomUpperBound)},this.dispatchEvent(new CustomEvent("pan")),this.dispatchEvent(new CustomEvent("zoom"))}offsetToWorld(t){const e=this.halfSize;return{x:(t.x-e.x)/this.camera.zoom-this.camera.x,y:(t.y-e.y)/this.camera.zoom-this.camera.y}}worldToOffset(t){const e=this.halfSize;return{x:(t.x+this.camera.x)*this.camera.zoom+e.x,y:(t.y+this.camera.y)*this.camera.zoom+e.y}}pageToOffset(t){const e=this.clientRect;return{x:t.x-e.left,y:t.y-e.top}}pasteAt(t,e){return __awaiter(this,void 0,void 0,(function*(){const o=copyPasteManager.getFromClipboard({x:t,y:e});o.nodes.forEach((t=>{project.addNode(t)})),yield this.updateComplete,o.connections.forEach((t=>{project.createConnection(t.from,t.to)}))}))}firstUpdated(){this.cachedClientRect=this.getBoundingClientRect(),this.application.nodePanel.drawer&&this.application.nodePanel.drawer.addEventListener("or-mwc-drawer-changed",(t=>__awaiter(this,void 0,void 0,(function*(){this.style.width=t.detail?"calc(100% - 255px)":"",yield this.updateComplete,this.cachedClientRect=this.getBoundingClientRect(),this.dispatchEvent(new CustomEvent("pan"))}))))}render(){return html`
2
+ ${repeat(project.nodes,(t=>t.id),(t=>html`<flow-node .node="${t}" .workspace="${this}"></flow-node>`))}
3
+ <connection-container .workspace="${this}"></connection-container>
4
+ <svg>
5
+ <line style="display:
6
+ ${this.connectionDragging?null:"none"};
7
+ stroke-dasharray: ${20*this.camera.zoom}, ${10*this.camera.zoom};
8
+ stroke-opacity: 0.25; stroke-width: ${4*this.camera.zoom}px"
9
+
10
+ x1="${this.connectionFrom.x}"
11
+ y1="${this.connectionFrom.y}"
12
+ x2="${this.connectionTo.x}"
13
+ y2="${this.connectionTo.y}"></line>
14
+ </svg>
15
+ <selection-box .workspace="${this}"></selection-box>
16
+ <div class="view-options" style="z-index: ${this.topNodeZindex+1}">
17
+ ${this.isCameraInDefaultPosition?null:html`<or-mwc-input type="${InputType.BUTTON}" icon="vector-square" @or-mwc-input-changed="${this.resetCamera}" label="${i18next.t("resetView","Reset view")}"></or-mwc-input>`}
18
+ ${0!==project.nodes.length?html`<or-mwc-input type="button" icon="fit-to-page-outline" @or-mwc-input-changed="${()=>this.fitCamera(project.nodes)}" label="${i18next.t("fitView","Fit view")}"></or-mwc-input>`:null}
19
+ </div>
20
+ `}startPan(t){return!this.connectionDragging&&4===t.buttons&&(this.isPanning=!0,window.addEventListener("mousemove",this.onMove),window.addEventListener("mouseup",this.stopPan),void t.preventDefault())}};__decorate([property({attribute:!1})],EditorWorkspace.prototype,"camera",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"topNodeZindex",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"scrollSensitivity",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"zoomLowerBound",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"zoomUpperBound",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"application",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"connectionDragging",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"connectionFrom",void 0),__decorate([property({attribute:!1})],EditorWorkspace.prototype,"connectionTo",void 0),EditorWorkspace=__decorate([customElement("editor-workspace")],EditorWorkspace);export{EditorWorkspace};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-workspace.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/editor-workspace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { LitElement } from "lit";
2
+ import { Integration } from "../services/integration";
3
+ import { CopyPasteManager } from "../services/copy-paste-manager";
4
+ import { Project } from "../services/project";
5
+ import { Input } from "../services/input";
6
+ import { ModalService } from "../services/modal";
7
+ import { Exporter } from "../services/exporter";
8
+ import { Shortcuts } from "../services/shortcuts";
9
+ import { NodePanel } from "./node-panel";
10
+ import { EditorWorkspace } from "./editor-workspace";
11
+ import { TopBar } from "./top-bar";
12
+ import { RuleView } from "../..";
13
+ import { RulesetUnion } from "@openremote/model";
14
+ export declare const integration: Integration;
15
+ export declare const copyPasteManager: CopyPasteManager;
16
+ export declare const project: Project;
17
+ export declare const input: Input;
18
+ export declare const modal: ModalService;
19
+ export declare const exporter: Exporter;
20
+ export declare const shortcuts: Shortcuts;
21
+ export declare const newIds: Set<string>;
22
+ declare const FlowEditor_base: (new (...args: any[]) => {
23
+ _i18nextJustInitialized: boolean;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
27
+ initCallback: (options: import("i18next").InitOptions) => void;
28
+ langChangedCallback: () => void;
29
+ readonly isConnected: boolean;
30
+ }) & typeof LitElement;
31
+ export declare class FlowEditor extends FlowEditor_base implements RuleView {
32
+ nodePanel: NodePanel;
33
+ topBar: TopBar;
34
+ editorWorkspace: EditorWorkspace;
35
+ showTopbar: boolean;
36
+ readonly?: boolean | undefined;
37
+ protected _ruleset: RulesetUnion;
38
+ constructor();
39
+ validate(): boolean;
40
+ beforeSave(): void;
41
+ set ruleset(ruleset: RulesetUnion);
42
+ static get styles(): import("lit").CSSResult[];
43
+ protected firstUpdated(): Promise<void>;
44
+ protected render(): import("lit-html").TemplateResult<1>;
45
+ private serialiseRule;
46
+ }
47
+ export {};
@@ -0,0 +1,45 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,o,r){var i,s=arguments.length,a=s<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,o):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,o,r);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(a=(s<3?i(a):s>3?i(t,o,a):i(t,o))||a);return s>3&&a&&Object.defineProperty(t,o,a),a},__awaiter=this&&this.__awaiter||function(e,t,o,r){return new(o||(o=Promise))((function(i,s){function a(e){try{p(r.next(e))}catch(e){s(e)}}function n(e){try{p(r.throw(e))}catch(e){s(e)}}function p(e){var t;e.done?i(e.value):(t=e.value,t instanceof o?t:new o((function(e){e(t)}))).then(a,n)}p((r=r.apply(e,t||[])).next())}))};import{LitElement,html,css}from"lit";import{customElement,property,query}from"lit/decorators.js";import{Integration}from"../services/integration";import{CopyPasteManager}from"../services/copy-paste-manager";import{Project}from"../services/project";import{Input}from"../services/input";import{ModalService}from"../services/modal";import{Exporter}from"../services/exporter";import{Shortcuts}from"../services/shortcuts";import{OrRulesRuleChangedEvent}from"../..";import{translate,i18next}from"@openremote/or-translate";import{NodeUtilities}from"../node-structure";export const integration=new Integration;export const copyPasteManager=new CopyPasteManager;export const project=new Project;export const input=new Input;export const modal=new ModalService;export const exporter=new Exporter;export const shortcuts=new Shortcuts;export const newIds=new Set;let FlowEditor=class extends(translate(i18next)(LitElement)){constructor(){super(),this.showTopbar=!1}validate(){return NodeUtilities.validate(exporter.jsonToFlow(this._ruleset.rules||"{}"))}beforeSave(){this.readonly||this.serialiseRule()}set ruleset(e){if(this._ruleset!==e)if(this._ruleset=e,e.rules){const t=exporter.jsonToFlow(e.rules);project.fromNodeCollection(t),project.setCurrentProject(e.id,e.name,t.description)}else project.clear(!0)}static get styles(){return[css`
2
+ :host{
3
+ user-select: none;
4
+ display: grid;
5
+ grid-template-columns: 1fr auto;
6
+ grid-template-rows: 100%;
7
+ grid-template-areas:
8
+ "workspace node-panel";
9
+
10
+ width: 100%;
11
+ height: 100%;
12
+
13
+ --or-app-color4: rgb(76,76,76);
14
+
15
+ --socket-size: 24px;
16
+ --socket-display-size: 14px;
17
+
18
+ --topbar-height: 50px;
19
+ --nodepanel-width: 195px;
20
+ --roundness: 3px;
21
+
22
+ --highlight-faded: hsla(102, 100%, 31%, 0.2);
23
+ --highlight: hsla(102, 100%, 31%, 0.5);
24
+ --highlight-opaque: hsla(102, 100%, 31%);
25
+
26
+ --any: rgb(162, 0, 255);
27
+ --number: rgb(165, 228, 50);
28
+ --boolean: rgb(0, 102, 255);
29
+ --string: rgb(45, 180, 221);
30
+ --color: rgb(255, 228, 78);
31
+
32
+ --input-color: hsl(222, 60%, 46%);
33
+ --processor-color: hsl(102, 58%, 39%);
34
+ --output-color: hsl(282, 60%, 47%);
35
+
36
+ --input-color-h: hsl(222, 58%, 54%);
37
+ --processor-color-h: hsl(102, 48%, 49%);
38
+ --output-color-h: hsl(282, 58%, 54%);
39
+ }`]}firstUpdated(){return __awaiter(this,void 0,void 0,(function*(){yield integration.refreshNodes(),this.requestUpdate(),yield this.updateComplete,project.emit("fitview"),project.addListener("changed",(()=>{this.serialiseRule(),this.dispatchEvent(new OrRulesRuleChangedEvent(this.validate()))}))}))}render(){return this.showTopbar&&(this.style.gridTemplateRows="var(--topbar-height) 1fr",this.style.gridTemplateAreas='"topbar topbar" "workspace node-panel";'),html`
40
+ ${this.showTopbar?html`<top-bar .application="${this}" style="grid-area: topbar"></top-bar>`:""}
41
+ <node-panel .application="${this}" style="grid-area: node-panel" .nodes= "${integration.nodes}"></node-panel>
42
+ <editor-workspace .application="${this}" id="workspace" style="grid-area: workspace"></editor-workspace>
43
+ <context-menu></context-menu>
44
+ <popup-modal id="popup-modal"></popup-modal>
45
+ `}serialiseRule(){this._ruleset.rules=exporter.flowToJson(project.toNodeCollection(this._ruleset.name,project.existingFlowRuleDesc))}};__decorate([query("node-panel")],FlowEditor.prototype,"nodePanel",void 0),__decorate([query("top-bar")],FlowEditor.prototype,"topBar",void 0),__decorate([query("editor-workspace")],FlowEditor.prototype,"editorWorkspace",void 0),__decorate([property({type:Boolean})],FlowEditor.prototype,"showTopbar",void 0),__decorate([property({attribute:!1})],FlowEditor.prototype,"readonly",void 0),__decorate([property({attribute:!1})],FlowEditor.prototype,"_ruleset",void 0),FlowEditor=__decorate([customElement("flow-editor")],FlowEditor);export{FlowEditor};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-editor.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/flow-editor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { LitElement } from "lit";
2
+ import { NodeSocket } from "@openremote/model";
3
+ declare const FlowNodeSocket_base: (new (...args: any[]) => {
4
+ _i18nextJustInitialized: boolean;
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
8
+ initCallback: (options: import("i18next").InitOptions) => void;
9
+ langChangedCallback: () => void;
10
+ readonly isConnected: boolean;
11
+ }) & typeof LitElement;
12
+ export declare class FlowNodeSocket extends FlowNodeSocket_base {
13
+ get connectionPosition(): {
14
+ x: number;
15
+ y: number;
16
+ };
17
+ static get styles(): import("lit").CSSResult;
18
+ get socketTypeString(): string;
19
+ socket: NodeSocket;
20
+ side: "input" | "output";
21
+ renderLabel: boolean;
22
+ private identityDeleted;
23
+ private circleElem;
24
+ disconnectedCallback(): void;
25
+ protected firstUpdated(): void;
26
+ protected updated(): void;
27
+ protected render(): import("lit-html").TemplateResult<1>;
28
+ private forceUpdate;
29
+ private linkIdentity;
30
+ }
31
+ export {};
@@ -0,0 +1,36 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,o,i){var r,n=arguments.length,s=n<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,o):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,i);else for(var d=e.length-1;d>=0;d--)(r=e[d])&&(s=(n<3?r(s):n>3?r(t,o,s):r(t,o))||s);return n>3&&s&&Object.defineProperty(t,o,s),s};import{LitElement,html,css}from"lit";import{customElement,property,query}from"lit/decorators.js";import{IdentityDomLink}from"../node-structure";import{Utilities}from"../utils";import{i18next,translate}from"@openremote/or-translate";import{project}from"./flow-editor";let FlowNodeSocket=class extends(translate(i18next)(LitElement)){constructor(){super(...arguments),this.renderLabel=!1,this.identityDeleted=!1,this.forceUpdate=()=>this.requestUpdate()}get connectionPosition(){return Utilities.getCenter(this.circleElem.getBoundingClientRect())}static get styles(){return css`
2
+ :host{
3
+ width: auto;
4
+ height: var(--socket-size);
5
+ margin: 2px;
6
+ display: inline-block;
7
+ }
8
+ .socket{
9
+ background: none;
10
+ height: var(--socket-size);
11
+ width: var(--socket-size);
12
+ border-radius: 100%;
13
+ display: inline-flex;
14
+ justify-content: center;
15
+ align-items: center;
16
+ }
17
+ .socket:hover{
18
+ background: var(--highlight);
19
+ }
20
+ .label{
21
+ display:inline-block;
22
+ vertical-align: top;
23
+ color: rgba(0,0,0,.5);
24
+ text-transform: lowercase;
25
+ }
26
+ .circle{
27
+ box-sizing: border-box;
28
+ background: grey;
29
+ width: var(--socket-display-size);
30
+ height: var(--socket-display-size);
31
+ border-radius: 100%;
32
+ pointer-events: none;
33
+ border: 1px solid rgb(80,80,80);
34
+ }`}get socketTypeString(){return this.socket.type.toString().toLowerCase()}disconnectedCallback(){this.identityDeleted=delete IdentityDomLink.map[this.socket.id],project.removeListener("connectioncreated",this.forceUpdate),project.removeListener("connectionremoved",this.forceUpdate),project.removeListener("nodeadded",this.forceUpdate),project.removeListener("noderemoved",this.forceUpdate),project.removeListener("cleared",this.forceUpdate),IdentityDomLink.map[this.socket.nodeId].removeEventListener("updated",this.forceUpdate)}firstUpdated(){this.title=Utilities.humanLike(this.socketTypeString),this.linkIdentity(),project.addListener("connectioncreated",this.forceUpdate),project.addListener("connectionremoved",this.forceUpdate),project.addListener("nodeadded",this.forceUpdate),project.addListener("noderemoved",this.forceUpdate),project.addListener("cleared",this.forceUpdate),IdentityDomLink.map[this.socket.nodeId].addEventListener("updated",this.forceUpdate);const e="input"===this.side;this.addEventListener("mousedown",(t=>{this.linkIdentity(),1===t.buttons&&(project.isCurrentlyConnecting||(project.startConnectionDrag(t,this.socket,e),t.stopPropagation(),t.stopImmediatePropagation()))})),this.addEventListener("mouseup",(t=>{project.createUndoSnapshot(),this.linkIdentity(),project.endConnectionDrag(t,this.socket,e),project.notifyChange(),1===t.buttons&&(t.stopPropagation(),t.stopImmediatePropagation())}))}updated(){this.linkIdentity()}render(){const e=`var(--${this.socketTypeString})`,t=html`<div class="socket">
35
+ <div class="circle" id="circle" style="background: ${e}"></div>
36
+ </div>`;if(!this.renderLabel)return t;const o=html`<div class="label">${i18next.t(this.socket.name)}</div>`;return"input"===this.side?html`${t}${o}`:html`${o}${t}`}linkIdentity(){this.identityDeleted||(IdentityDomLink.map[this.socket.id]=this)}};__decorate([property({type:Object})],FlowNodeSocket.prototype,"socket",void 0),__decorate([property({type:String})],FlowNodeSocket.prototype,"side",void 0),__decorate([property({type:Boolean})],FlowNodeSocket.prototype,"renderLabel",void 0),__decorate([query("#circle")],FlowNodeSocket.prototype,"circleElem",void 0),FlowNodeSocket=__decorate([customElement("flow-node-socket")],FlowNodeSocket);export{FlowNodeSocket};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-node-socket.js","sourceRoot":"","sources":["../../../src/flow-viewer/components/flow-node-socket.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { Node } from "@openremote/model";
2
+ import { SelectableElement } from "./selectable-element";
3
+ import { EditorWorkspace } from "./editor-workspace";
4
+ export declare class FlowNode extends SelectableElement {
5
+ node: Node;
6
+ workspace: EditorWorkspace;
7
+ frozen: boolean;
8
+ private minimal;
9
+ private isBeingDragged;
10
+ constructor();
11
+ static get styles(): import("lit").CSSResult;
12
+ disconnectedCallback(): void;
13
+ bringToFront(): void;
14
+ protected firstUpdated(): Promise<void>;
15
+ protected updated(): Promise<void>;
16
+ protected render(): import("lit-html").TemplateResult<1>;
17
+ private forceUpdate;
18
+ private setTranslate;
19
+ private startDrag;
20
+ private onDrag;
21
+ private stopDrag;
22
+ private linkIdentity;
23
+ }