@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
@@ -0,0 +1,113 @@
1
+ var __decorate=this&&this.__decorate||function(e,t,i,o){var r,n=arguments.length,s=n<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,o);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(n<3?r(s):n>3?r(t,i,s):r(t,i))||s);return n>3&&s&&Object.defineProperty(t,i,s),s};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{buttonStyle}from"../style";import"./or-rule-asset-query";import{getAssetTypeFromQuery}from"../index";import{OrRulesJsonRuleChangedEvent}from"./or-rule-json-viewer";import{AssetModelUtil}from"@openremote/model";import i18next from"i18next";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{getContentWithMenuTemplate}from"@openremote/or-mwc-components/or-mwc-menu";import{Util}from"@openremote/core";import"./or-rule-action-attribute";import"./or-rule-action-notification";import"./or-rule-action-webhook";import{translate}from"@openremote/or-translate";const NOTIFICATION_COLOR="4B87EA",WAIT_COLOR="EACC54";function getActionTypesMenu(e,t){let i=!0,o=!0,r=!0,n=!0,s=!0;e&&e.controls&&e.controls.allowedActionTypes&&(i=e.controls.allowedActionTypes.indexOf("attribute")>=0,o=e.controls.allowedActionTypes.indexOf("wait")>=0,r=e.controls.allowedActionTypes.indexOf("email")>=0,n=e.controls.allowedActionTypes.indexOf("push")>=0,s=e.controls.allowedActionTypes.indexOf("webhook")>=0);const c=[];return i&&t&&c.push(...t.filter((e=>"agent"!==e.assetDescriptor.descriptorType)).map((e=>{const t=AssetModelUtil.getAssetDescriptorColour(e),i=AssetModelUtil.getAssetDescriptorIcon(e),o=t?{"--or-icon-fill":"#"+t}:void 0;return{text:Util.getAssetTypeLabel(e.assetDescriptor),value:e.assetDescriptor.name,icon:i||AssetModelUtil.getAssetDescriptorIcon("ThingAsset"),styleMap:o}}))),c.sort(Util.sortByString((e=>null==e?void 0:e.value))),c.push(null),r&&c.push({text:i18next.t("email"),icon:"email",value:"email",styleMap:{"--or-icon-fill":"#4B87EA"}}),n&&c.push({text:i18next.t("push-notification"),icon:"cellphone-message",value:"push",styleMap:{"--or-icon-fill":"#4B87EA"}}),o&&c.push({text:i18next.t("wait"),icon:"timer",value:"wait",styleMap:{"--or-icon-fill":"#EACC54"}}),s&&c.push({text:i18next.t("webhook"),icon:"webhook",value:"webhook",styleMap:{"--or-icon-fill":"#4B87EA"}}),c}export var RecurrenceOption;function getRecurrenceMenu(e){return e&&e.controls&&e.controls.allowedRecurrenceOptions?e.controls.allowedRecurrenceOptions.map((e=>({text:i18next.t(e),value:e}))):Object.values(RecurrenceOption).map((e=>({text:i18next.t(e),value:e})))}!function(e){e.ALWAYS="always",e.ONCE="once",e.ONCE_PER_HOUR="oncePerHour",e.ONCE_PER_DAY="oncePerDay",e.ONCE_PER_WEEK="oncePerWeek"}(RecurrenceOption||(RecurrenceOption={}));const style=css`
2
+
3
+ :host {
4
+ display: flex;
5
+ width: 100%;
6
+ flex-direction: column;
7
+ }
8
+
9
+ ${buttonStyle}
10
+
11
+ .rule-action {
12
+ display: flex;
13
+ margin: 10px 0;
14
+ }
15
+
16
+ .rule-action-wrapper {
17
+ flex-grow: 1;
18
+ display: flex;
19
+ align-items: baseline;
20
+ }
21
+
22
+ .rule-action > button {
23
+ flex-grow: 0;
24
+ }
25
+
26
+ .rule-action:hover .button-clear {
27
+ visibility: visible;
28
+ }
29
+
30
+ or-panel:hover .remove-button.button-clear {
31
+ visibility: visible;
32
+ }
33
+
34
+ or-panel {
35
+ position: relative;
36
+ margin: 10px 10px 20px 10px;
37
+ }
38
+
39
+ #type-selector {
40
+ margin-top: 10px;
41
+ }
42
+
43
+ .add-button-wrapper {
44
+ display: flex;
45
+ align-items: center;
46
+ white-space: nowrap;
47
+ }
48
+
49
+ .add-button-wrapper > * {
50
+ margin-right: 6px;
51
+ }
52
+
53
+ .add-button-wrapper or-mwc-menu {
54
+ text-transform: capitalize;
55
+ }
56
+
57
+ #type {
58
+ white-space: nowrap;
59
+ margin: 4px 3px auto 0;
60
+ text-transform: capitalize;
61
+ }
62
+
63
+ .rule-recurrence {
64
+ position: absolute;
65
+ top: 5px;
66
+ right: 0;
67
+ }
68
+
69
+ `;let OrRuleThenOtherwise=class extends(translate(i18next)(LitElement)){static get styles(){return style}get thenAllowAdd(){return!this.config||!this.config.controls||!0!==this.config.controls.hideThenAddAction}ruleRecurrenceTemplate(e,t){let i="";const o="inherit";let r=RecurrenceOption.ONCE;return e&&(void 0===e.mins||null===e.mins?r=RecurrenceOption.ONCE:0===e.mins?r=RecurrenceOption.ALWAYS:60===e.mins?r=RecurrenceOption.ONCE_PER_HOUR:1440===e.mins?r=RecurrenceOption.ONCE_PER_DAY:10080===e.mins&&(r=RecurrenceOption.ONCE_PER_WEEK)),i=t?html`
70
+ <div style="--or-mwc-input-color: ${o}; margin-right: 6px;">
71
+ <or-mwc-input .type="${InputType.BUTTON}" label="${r}"></or-mwc-input>
72
+ </div>
73
+ `:html`
74
+ <div style="--or-mwc-input-color: ${o}; margin-right: 6px;">
75
+ ${getContentWithMenuTemplate(html`<or-mwc-input .type="${InputType.BUTTON}" label="${r}"></or-mwc-input>`,getRecurrenceMenu(this.config),r,(e=>this.setRecurrenceOption(e)))}
76
+ </div>
77
+ `,html`
78
+ <div class="rule-recurrence">
79
+ ${i}
80
+ </div>
81
+ `}ruleActionTemplate(e,t,i){const o=!this.config||!this.config.controls||!0!==this.config.controls.hideActionTypeOptions,r=this.getActionType(t);if(!r&&!o)return html`<span>INVALID CONFIG - NO TYPE SPECIFIED AND TYPE SELECTOR DISABLED</span>`;let n="",s="";const c=!this.readonly&&(this.thenAllowAdd||this.rule.then.length>1);if(o){let o,s="inherit";if(t.action)switch(t.action){case"wait":o="timer",s="EACC54";break;case"webhook":o="webhook",s="4B87EA";break;case"notification":"push"===r?(o="cellphone-message",s="4B87EA"):(o="email",s="4B87EA");break;default:const e=AssetModelUtil.getAssetDescriptor(r);o=AssetModelUtil.getAssetDescriptorIcon(e),s=AssetModelUtil.getAssetDescriptorColour(e)||s}n=i?html`
82
+ <div id="type" style="--or-mwc-input-color: #${s}">
83
+ <or-mwc-input type="${InputType.BUTTON}" .icon="${o||""}"></or-mwc-input>
84
+ </div>
85
+ `:html`
86
+ <div id="type" style="--or-mwc-input-color: #${s}">
87
+ ${getContentWithMenuTemplate(html`<or-mwc-input type="${InputType.BUTTON}" .icon="${o||""}"></or-mwc-input>`,getActionTypesMenu(this.config,this.assetInfos),t.action,(i=>this.setActionType(e,t,i)))}
88
+ </div>
89
+ `}if(r)switch(r){case"wait":s=html`<span>WAIT NOT IMPLEMENTED</span>`;break;case"push":s=html`<or-rule-action-notification id="push-notification" .rule="${this.rule}" .action="${t}" .actionType="${"push"}" .config="${this.config}" .assetInfos="${this.assetInfos}" .readonly="${this.readonly}"></or-rule-action-notification>`;break;case"email":s=html`<or-rule-action-notification id="email-notification" .rule="${this.rule}" .action="${t}" .actionType="${"email"}" .config="${this.config}" .assetInfos="${this.assetInfos}" .readonly="${this.readonly}"></or-rule-action-notification>`;break;case"webhook":s=html`<or-rule-action-webhook .rule="${this.rule}" .action="${t}" .actionType="${"webhook"}"></or-rule-action-webhook>`;break;default:s=html`<or-rule-action-attribute .action="${t}" .targetTypeMap="${this.targetTypeMap}" .config="${this.config}" .assetInfos="${this.assetInfos}" .assetProvider="${this.assetProvider}" .readonly="${this.readonly}"></or-rule-action-attribute>`}return html`
90
+ <div class="rule-action">
91
+ <div class="rule-action-wrapper">
92
+ ${n}
93
+ ${s}
94
+ </div>
95
+ ${c?html`
96
+ <button class="button-clear" @click="${()=>this.removeAction(t)}"><or-icon icon="close-circle"></or-icon></input>
97
+ `:""}
98
+ </div>
99
+ `}render(){const e=!this.readonly&&(this.thenAllowAdd||this.rule.then.length>1);return html`
100
+ <div>
101
+ <or-panel .heading="${i18next.t("then")}...">
102
+ ${this.ruleRecurrenceTemplate(this.rule.recurrence,this.readonly)}
103
+
104
+ ${this.rule.then?this.rule.then.map((e=>this.ruleActionTemplate(this.rule.then,e,this.readonly))):""}
105
+ ${e?html`
106
+ <span class="add-button-wrapper">
107
+ ${getContentWithMenuTemplate(html`<or-mwc-input class="plus-button" type="${InputType.BUTTON}" icon="plus"
108
+ .label="${i18next.t("rulesEditorAddAction")}"></or-mwc-input>`,getActionTypesMenu(this.config,this.assetInfos),void 0,(e=>this.addAction(e)))}
109
+ </span>
110
+ `:""}
111
+ </or-panel>
112
+ </div>
113
+ `}getActionType(e){switch(e.action){case"wait":break;case"webhook":return e.action;case"notification":return e.notification&&e.notification.message&&e.notification.message.type?e.notification.message.type:e.action;case"write-attribute":case"update-attribute":if(!e.target)return;if(e.target.matchedAssets)return getAssetTypeFromQuery(e.target.matchedAssets);if(e.target.assets)return getAssetTypeFromQuery(e.target.assets)}}setRecurrenceOption(e){switch(e){case RecurrenceOption.ALWAYS:this.rule.recurrence={mins:0};break;case RecurrenceOption.ONCE_PER_HOUR:this.rule.recurrence={mins:60};break;case RecurrenceOption.ONCE_PER_DAY:this.rule.recurrence={mins:1440};break;case RecurrenceOption.ONCE_PER_WEEK:this.rule.recurrence={mins:10080};break;case RecurrenceOption.ONCE:default:delete this.rule.recurrence}this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}setActionType(e,t,i){switch(t.target=void 0,t.action){case"wait":t.millis=void 0;break;case"webhook":break;case"write-attribute":t.value=void 0,t.attributeName=void 0;break;case"notification":t.notification=void 0;break;case"update-attribute":t.value=void 0,t.attributeName=void 0,t.index=void 0,t.key=void 0,t.updateAction=void 0}"wait"===i?t.action="wait":"webhook"==i?(t.action="webhook",t.webhook={httpMethod:"POST",payload:JSON.stringify({rule:"%RULESET_NAME%",assets:"%TRIGGER_ASSETS%"},null,4)}):"email"===i?(t.action="notification",t.notification={message:{type:"email",subject:"%RULESET_NAME%",html:"%TRIGGER_ASSETS%"}}):"push"===i?(t.action="notification",t.notification={message:{type:"push",title:"%RULESET_NAME%",body:"%TRIGGER_ASSETS%"}}):(t.action="write-attribute",t.target={matchedAssets:{types:[i]}});const o=e.indexOf(t);e[o]=Object.assign({},t),this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}removeAction(e){if(!this.rule||!this.rule.then||!e)return;const t=this.rule.then.indexOf(e);t>=0&&(this.rule.then.splice(t,1),this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate())}addAction(e,t){if(!this.rule)return;let i,o,r={action:"write-attribute"};const n=this.config&&this.config.json?this.config.json:void 0;t?(this.rule.otherwise||(this.rule.otherwise=[]),i=this.rule.otherwise,o=n&&n.otherwise?n.otherwise:void 0):(this.rule.then||(this.rule.then=[]),i=this.rule.then,o=n&&n.then?n.then:void 0),o&&(r=JSON.parse(JSON.stringify(o))),e&&this.setActionType(i,r,e),i.push(r),this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}};__decorate([property({type:Array,attribute:!1})],OrRuleThenOtherwise.prototype,"targetTypeMap",void 0),__decorate([property({type:Object,attribute:!1})],OrRuleThenOtherwise.prototype,"rule",void 0),__decorate([property({type:Boolean})],OrRuleThenOtherwise.prototype,"readonly",void 0),__decorate([property({type:Object,attribute:!1})],OrRuleThenOtherwise.prototype,"assetInfos",void 0),__decorate([property({type:Object})],OrRuleThenOtherwise.prototype,"assetProvider",void 0),OrRuleThenOtherwise=__decorate([customElement("or-rule-then-otherwise")],OrRuleThenOtherwise);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-rule-then-otherwise.js","sourceRoot":"","sources":["../../src/json-viewer/or-rule-then-otherwise.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { GeoJSONPoint, RuleCondition, SunPositionTriggerPosition } from "@openremote/model";
2
+ import { LitElement, PropertyValues } from "lit";
3
+ import { TimeTriggerType } from "../index";
4
+ interface TimeTrigger {
5
+ key: TimeTriggerType | SunPositionTriggerPosition;
6
+ value: string;
7
+ }
8
+ export declare class OrRuleTriggerQuery extends LitElement {
9
+ static get styles(): import("lit").CSSResult;
10
+ condition: RuleCondition;
11
+ readonly: boolean;
12
+ protected selectedTrigger: TimeTrigger;
13
+ protected triggerOptions: TimeTrigger[];
14
+ constructor();
15
+ updated(changedProperties: PropertyValues): void;
16
+ initMap(): void;
17
+ renderDialogHTML(point: GeoJSONPoint | undefined): void;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ setTrigger(trigger: TimeTrigger): void;
20
+ setTime(time: string): void;
21
+ setOffset(offset: number): void;
22
+ setLocation(point: GeoJSONPoint): void;
23
+ getSunPositions(): SunPositionTriggerPosition[];
24
+ triggerToString(position: TimeTriggerType | SunPositionTriggerPosition): string;
25
+ }
26
+ export {};
@@ -0,0 +1,57 @@
1
+ var __decorate=this&&this.__decorate||function(t,e,i,o){var n,r=arguments.length,s=r<3?e:null===o?o=Object.getOwnPropertyDescriptor(e,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,o);else for(var l=t.length-1;l>=0;l--)(n=t[l])&&(s=(r<3?n(s):r>3?n(e,i,s):n(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{css,html,LitElement}from"lit";import{customElement,property,state}from"lit/decorators.js";import moment from"moment";import{buttonStyle}from"../style";import{OrRulesJsonRuleChangedEvent}from"./or-rule-json-viewer";import{TimeTriggerType}from"../index";import{Util}from"@openremote/core";import{OrMwcDialogOpenedEvent}from"@openremote/or-mwc-components/or-mwc-dialog";import{OrMapClickedEvent}from"@openremote/or-map";import{i18next}from"@openremote/or-translate";const style=css`
2
+
3
+ ${buttonStyle}
4
+
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ .trigger-group {
10
+ flex-grow: 1;
11
+ display: flex;
12
+ align-items: center;
13
+ flex-direction: row;
14
+ flex-wrap: wrap;
15
+ }
16
+ .min-width {
17
+ min-width: 200px;
18
+ }
19
+ .width {
20
+ width: 200px;
21
+ }
22
+
23
+ .trigger-group > * {
24
+ margin: 10px 3px 6px 3px;
25
+ }
26
+ `;let OrRuleTriggerQuery=class extends LitElement{static get styles(){return style}constructor(){super(),this.readonly=!1,this.triggerOptions=[],Object.values(TimeTriggerType).forEach((t=>{this.triggerOptions.push({key:t,value:this.triggerToString(t)})})),this.getSunPositions().forEach((t=>{this.triggerOptions.push({key:t,value:this.triggerToString(t)})})),this.selectedTrigger=this.triggerOptions[0],this.addEventListener(OrMwcDialogOpenedEvent.NAME,this.initMap)}updated(t){t.has("condition")&&(this.condition.cron?this.selectedTrigger={key:TimeTriggerType.TIME_OF_DAY,value:this.triggerToString(TimeTriggerType.TIME_OF_DAY)}:this.condition.sun&&(this.selectedTrigger={key:this.condition.sun.position,value:this.triggerToString(this.condition.sun.position)}))}initMap(){const t=this.shadowRoot.getElementById("map-modal");if(!t)return;const e=t.shadowRoot.querySelector(".or-map");e&&e.addEventListener(OrMapClickedEvent.NAME,(e=>{const i=e.detail.lngLat;this.setLocation({type:"Point",coordinates:[i.lat,i.lng]});const o=t.shadowRoot.querySelector(".location-lat"),n=t.shadowRoot.querySelector(".location-lng");o.value=i.lat,n.value=i.lng}))}renderDialogHTML(t){const e=this.shadowRoot.getElementById("map-modal");e&&(e.content=html`
27
+ <div style="display:grid">
28
+ <or-map class="or-map" type="VECTOR" style="border: 1px solid #d5d5d5; height: 400px; min-width: 300px; margin-bottom: 20px;">
29
+ ${t&&t.coordinates?html`
30
+ <or-map-marker class="or-map-marker" active color="#FF0000" icon="white-balance-sunny" lat="${t.coordinates[0]}" lng="${t.coordinates[1]}"></or-map-marker>
31
+ `:void 0}
32
+ </or-map>
33
+ <div class="layout horizontal">
34
+ <input hidden class="location-lng" required placeholder=" " type="text" .value="${t&&t.coordinates?t.coordinates[0]:null}" />
35
+ <input hidden class="location-lat" required placeholder=" " type="text" .value="${t&&t.coordinates?t.coordinates[1]:null}" />
36
+ </div>
37
+ </div>
38
+ `)}render(){var t,e;const i=[{actionName:"close",default:!0,content:html`<or-mwc-input class="button" .type="${InputType.BUTTON}" label="close"></or-mwc-input>`,action:()=>{}}];return this.renderDialogHTML(null===(t=this.condition.sun)||void 0===t?void 0:t.location),html`
39
+ <div class="trigger-group">
40
+ <or-mwc-input class="min-width" type="${InputType.SELECT}" .options="${this.triggerOptions.map((t=>t.value))}" .value="${this.selectedTrigger.value}" label="${i18next.t("triggerType")}"
41
+ @or-mwc-input-changed="${t=>{this.setTrigger(this.triggerOptions.find((e=>e.value==t.detail.value)))}}">
42
+ </or-mwc-input>
43
+ ${this.selectedTrigger?html`
44
+ ${this.selectedTrigger.key==this.triggerOptions[0].key?html`
45
+ <or-mwc-input class="min-width" type="${InputType.TIME}" .value="${this.condition.cron?moment(Util.cronStringToISOString(this.condition.cron,!0)).format("HH:mm"):void 0}" label="${i18next.t("timeOfDay")}"
46
+ @or-mwc-input-changed="${t=>{this.setTime(t.detail.value)}}">
47
+ </or-mwc-input>
48
+ `:html`
49
+ <or-mwc-input class="min-width width" type="${InputType.NUMBER}" .value="${null===(e=this.condition.sun)||void 0===e?void 0:e.offsetMins}" label="${i18next.t("offsetInMinutes")}"
50
+ @or-mwc-input-changed="${t=>{this.setOffset(t.detail.value)}}">
51
+ </or-mwc-input>
52
+ <or-mwc-input type="${InputType.BUTTON}" class="min-width" @or-mwc-input-changed="${()=>{var t;const e=this.shadowRoot.getElementById("map-modal");e&&(e.dismissAction=null,e.open(),this.renderDialogHTML(null===(t=this.condition.sun)||void 0===t?void 0:t.location))}}" label="location"></or-mwc-input>
53
+ <or-mwc-dialog id="map-modal" heading="${i18next.t("pickLocation")}" .actions="${i}"></or-mwc-dialog>
54
+ `}
55
+ `:void 0}
56
+ </div>
57
+ `}setTrigger(t){t&&(t.key==TimeTriggerType.TIME_OF_DAY?this.condition.sun=void 0:this.getSunPositions().includes(t.key)&&(this.condition.cron=void 0,this.getSunPositions().includes(this.selectedTrigger.key)?this.condition.sun={position:t.key,offsetMins:this.condition.sun.offsetMins,location:this.condition.sun.location}:this.condition.sun={position:t.key,offsetMins:0}),this.selectedTrigger=t,this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate())}setTime(t){if(t){const e=t.split(":"),i=new Date;i.setHours(Number(e[0])),i.setMinutes(Number(e[1])),this.condition.cron=Util.formatCronString(void 0,void 0,void 0,i.getUTCHours().toString(),i.getUTCMinutes().toString()),this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}}setOffset(t){var e,i;this.condition.sun={position:null===(e=this.condition.sun)||void 0===e?void 0:e.position,location:null===(i=this.condition.sun)||void 0===i?void 0:i.location,offsetMins:t},this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}setLocation(t){var e,i;this.condition.sun={position:null===(e=this.condition.sun)||void 0===e?void 0:e.position,location:t,offsetMins:null===(i=this.condition.sun)||void 0===i?void 0:i.offsetMins},this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate()}getSunPositions(){return["TWILIGHT_MORNING_CIVIL","SUNRISE","SUNSET","TWILIGHT_EVENING_CIVIL"]}triggerToString(t){return t==TimeTriggerType.TIME_OF_DAY?i18next.t("timeOfDay"):i18next.t(t.toLowerCase())}};__decorate([property({type:Object,attribute:!1})],OrRuleTriggerQuery.prototype,"condition",void 0),__decorate([property()],OrRuleTriggerQuery.prototype,"readonly",void 0),__decorate([state()],OrRuleTriggerQuery.prototype,"selectedTrigger",void 0),__decorate([state()],OrRuleTriggerQuery.prototype,"triggerOptions",void 0),OrRuleTriggerQuery=__decorate([customElement("or-rule-trigger-query")],OrRuleTriggerQuery);export{OrRuleTriggerQuery};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-rule-trigger-query.js","sourceRoot":"","sources":["../../src/json-viewer/or-rule-trigger-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ import "./or-rule-condition";
@@ -0,0 +1,136 @@
1
+ var OrRuleWhen_1,ResetOption,__decorate=this&&this.__decorate||function(e,t,o,n){var r,i=arguments.length,s=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,o):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,o,n);else for(var l=e.length-1;l>=0;l--)(r=e[l])&&(s=(i<3?r(s):i>3?r(t,o,s):r(t,o))||s);return i>3&&s&&Object.defineProperty(t,o,s),s};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import{OrRulesRuleUnsupportedEvent}from"../index";import{buttonStyle}from"../style";import"./or-rule-condition";import i18next from"i18next";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{OrRulesJsonRuleChangedEvent}from"./or-rule-json-viewer";import{getWhenTypesMenu,updateRuleConditionType}from"./or-rule-condition";import{getContentWithMenuTemplate}from"@openremote/or-mwc-components/or-mwc-menu";import{translate}from"@openremote/or-translate";!function(e){e.NO_LONGER_MATCHES="noLongerMatches",e.VALUE_CHANGES="valueChanges"}(ResetOption||(ResetOption={}));const style=css`
2
+
3
+ :host {
4
+ display: block;
5
+ }
6
+
7
+ ${buttonStyle}
8
+
9
+ .rule-group-items {
10
+ display: flex;
11
+ flex-direction: column;
12
+ }
13
+
14
+ .rule-group .rule-group-items > div {
15
+ margin: 10px 0;
16
+ }
17
+
18
+ .rule-condition {
19
+ display: flex;
20
+ padding-right: 5px;
21
+ }
22
+
23
+ .rule-condition > * {
24
+ flex-grow: 0;
25
+ }
26
+
27
+ .rule-condition > or-rule-condition {
28
+ flex-grow: 1;
29
+ }
30
+
31
+ or-rule-condition {
32
+ margin-bottom: 10px;
33
+ }
34
+
35
+ .rule-group-item > or-icon {
36
+ padding-left: 17px;
37
+ }
38
+
39
+ or-icon.small {
40
+ --or-icon-width: 14px;
41
+ --or-icon-height: 14px;
42
+ }
43
+
44
+ or-panel {
45
+ margin: 10px 10px 20px 10px;
46
+ position: relative;
47
+ }
48
+
49
+ or-panel > .remove-button {
50
+ position: absolute;
51
+ right: 0;
52
+ top: 0;
53
+ width: 24px;
54
+ height: 24px;
55
+ transform: translate(50%, -50%);
56
+ }
57
+
58
+ .rule-condition:hover .button-clear {
59
+ visibility: visible;
60
+ }
61
+
62
+ or-panel:hover .remove-button.button-clear {
63
+ visibility: visible;
64
+ }
65
+
66
+ .add-button-wrapper {
67
+ display: flex;
68
+ align-items: center;
69
+ white-space: nowrap;
70
+ }
71
+
72
+ .add-button-wrapper > * {
73
+ margin-right: 6px;
74
+ }
75
+
76
+ .add-button-wrapper or-mwc-menu {
77
+ text-transform: capitalize;
78
+ }
79
+
80
+ strong {
81
+ margin: var(--internal-or-panel-heading-margin);
82
+ font-size: var(--internal-or-panel-heading-font-size);
83
+ }
84
+ `;let OrRuleWhen=OrRuleWhen_1=class extends(translate(i18next)(LitElement)){static get styles(){return style}ruleGroupTemplate(e,t){if(!e)return html``;const o=!t,n=!(this.readonly||this.config&&this.config.controls&&!0===this.config.controls.hideWhenAddCondition),r=!this.readonly,i=!this.readonly;let s;s=o?(e,t,o,n,r)=>html`
85
+ <or-panel .heading="${i18next.t(r?"when":"orWhen")}...">
86
+ ${i?html`
87
+ <button class="button-clear remove-button" @click="${()=>this.removeItem(t,o,n)}">
88
+ <or-icon icon="close-circle"></or-icon>
89
+ </button>
90
+ `:""}
91
+ ${e}
92
+ </or-panel>`:(e,t,o,n,r)=>html`
93
+ ${r?"":html`
94
+ <or-icon class="small" icon="ampersand"></or-icon>
95
+ `}
96
+ ${e}
97
+ `;let l="",p="",u="",a=!0;return e.groups&&e.groups.length>0&&(l=html`
98
+ ${e.groups.map(((t,o)=>{const n=html`
99
+ <div class="rule-group-item">
100
+ ${this.ruleGroupTemplate(t,e)}
101
+ </div>
102
+ `;return s(n,t,e,!0,0==o)}))}
103
+ `,a=!1),e.items&&e.items.length>0&&(p=html`
104
+ ${e.items.map(((t,o)=>{const n=html`
105
+ <div class="rule-group-item">
106
+ <div class="rule-condition">
107
+ <or-rule-condition .config="${this.config}" .assetInfos="${this.assetInfos}" .ruleCondition="${t}" .readonly="${this.readonly}" .assetProvider="${this.assetProvider}"></or-rule-condition>
108
+ ${i?html`
109
+ <button class="button-clear ${r?"":"hidden"}" @click="${()=>this.removeItem(t,e,!1)}"><or-icon icon="close-circle"></or-icon></input>
110
+ `:""}
111
+ </div>
112
+ </div>
113
+ `;return s(n,t,e,!0,a&&0===o)}))}
114
+ `,a=!1),!o&&n&&(u=html`
115
+ <span class="add-button-wrapper">
116
+ ${getContentWithMenuTemplate(html`<or-mwc-input class="plus-button" type="${InputType.BUTTON}" icon="plus"
117
+ .label="${i18next.t("rulesEditorAddCondition")}"></or-mwc-input>`,getWhenTypesMenu(this.config,this.assetInfos),void 0,(t=>this.addCondition(e,t)))}
118
+ </span>
119
+ `),html`
120
+ ${l}
121
+ ${p}
122
+ ${u}
123
+ `}dateTimePredicateTemplate(){return html`<span>DATE TIME PREDICATE NOT IMPLEMENTED</span>`}shouldUpdate(e){return e.has("rule")&&this.rule&&(this.rule.when?OrRuleWhen_1._isRuleWhenCompatible(this.rule.when)||(this.rule=void 0,this.dispatchEvent(new OrRulesRuleUnsupportedEvent)):this.rule.when={operator:"OR"}),super.shouldUpdate(e)}render(){if(!this.rule||!this.rule.when)return html``;const e=!(this.readonly||this.config&&this.config.controls&&!0===this.config.controls.hideWhenAddGroup);return html`
124
+ <div>
125
+ ${this.ruleGroupTemplate(this.rule.when)}
126
+ </div>
127
+
128
+ ${e?html`
129
+ <or-panel>
130
+ <strong>${i18next.t(this.rule.when.groups&&0!==this.rule.when.groups.length?"orWhen":"when")}...</strong>
131
+ <span class="add-button-wrapper">
132
+ ${getContentWithMenuTemplate(html`<or-mwc-input class="plus-button" type="${InputType.BUTTON}" icon="plus"></or-mwc-input>`,getWhenTypesMenu(this.config,this.assetInfos),void 0,(e=>this.addGroup(this.rule.when,e)))}
133
+ </span>
134
+ </or-panel>
135
+ `:""}
136
+ `}static _isRuleWhenCompatible(e){return"OR"!==e.operator?(console.warn("Incompatible rule: when operator not set to 'OR'"),!1):e.items&&e.items.length>0?(console.warn("Incompatible rule: when items not supported"),!1):!e.groups||!e.groups.find((e=>!this._isWhenGroupCompatible(e)))||(console.warn("Incompatible rule: when groups incompatible"),!1)}static _isWhenGroupCompatible(e){return"OR"===e.operator?(console.warn("Incompatible rule: when group operator not set to 'AND'"),!1):!(e.groups&&e.groups.length>0&&(console.warn("Incompatible rule: when group nested groups not supported"),1))}addGroup(e,t){if(!this.rule||!this.rule.when||e!==this.rule.when)return;let o={operator:"AND"};return this.config&&this.config.json&&this.config.json.whenGroup&&(o=JSON.parse(JSON.stringify(this.config.json.whenGroup))),"AND"!==o.operator?(console.warn("JSON rules editor doesn't support top level logic group with type OR"),void this.dispatchEvent(new OrRulesRuleUnsupportedEvent)):o.groups&&o.groups.length>0?(console.warn("JSON rules editor doesn't support multiple top level logic groups"),void this.dispatchEvent(new OrRulesRuleUnsupportedEvent)):(o.groups=void 0,o.items&&0!==o.items.length||this.addCondition(o,t,!0),e.groups||(e.groups=[]),e.groups.push(o),this.dispatchEvent(new OrRulesJsonRuleChangedEvent),void this.requestUpdate())}removeItem(e,t,o){let n=!1;if(t){if(o){const o=t.groups.indexOf(e);t.groups.splice(o,1),n=o>=0}else{const o=t.items.indexOf(e);t.items.splice(o,1),n=o>=0}n&&(this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate())}}addCondition(e,t,o){if(!e)return;e.items||(e.items=[]);let n={};this.config&&this.config.json&&this.config.json.whenCondition?n=JSON.parse(JSON.stringify(this.config.json.whenCondition)):updateRuleConditionType(n,t||"ThingAsset",this.config),e.items.push(n),o||(this.dispatchEvent(new OrRulesJsonRuleChangedEvent),this.requestUpdate())}};__decorate([property({type:Object})],OrRuleWhen.prototype,"rule",void 0),__decorate([property({type:Boolean})],OrRuleWhen.prototype,"readonly",void 0),__decorate([property({type:Object})],OrRuleWhen.prototype,"assetProvider",void 0),__decorate([property({type:Object,attribute:!1})],OrRuleWhen.prototype,"assetInfos",void 0),OrRuleWhen=OrRuleWhen_1=__decorate([customElement("or-rule-when")],OrRuleWhen);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"or-rule-when.js","sourceRoot":"","sources":["../../src/json-viewer/or-rule-when.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { LitElement, PropertyValues, TemplateResult } from "lit";
2
+ import { RulesetLang, RulesetUnion, RealmRuleset } from "@openremote/model";
3
+ import "@openremote/or-translate";
4
+ import "@openremote/or-mwc-components/or-mwc-input";
5
+ import { RulesConfig, RulesetNode } from "./index";
6
+ import "@openremote/or-mwc-components/or-mwc-menu";
7
+ declare const OrRuleList_base: (new (...args: any[]) => {
8
+ _i18nextJustInitialized: boolean;
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ shouldUpdate(changedProps: import("lit").PropertyValueMap<any> | Map<PropertyKey, unknown>): any;
12
+ initCallback: (options: import("i18next").InitOptions) => void;
13
+ langChangedCallback: () => void;
14
+ readonly isConnected: boolean;
15
+ }) & typeof LitElement;
16
+ export declare class OrRuleList extends OrRuleList_base {
17
+ static DEFAULT_ALLOWED_LANGUAGES: RulesetLang[];
18
+ config?: RulesConfig;
19
+ readonly: boolean;
20
+ disabled: boolean;
21
+ multiSelect: boolean;
22
+ selectedIds?: number[];
23
+ sortBy?: string;
24
+ language?: RulesetLang;
25
+ protected _nodes?: RulesetNode[];
26
+ protected _showLoading: boolean;
27
+ protected _globalRulesets: boolean;
28
+ protected _selectedNodes: RulesetNode[];
29
+ protected _rulesetPromises: Map<string, Promise<any[]>>;
30
+ protected _ready: boolean;
31
+ static get styles(): import("lit").CSSResult[];
32
+ refresh(): Promise<void>;
33
+ protected get _allowedLanguages(): RulesetLang[] | undefined;
34
+ protected _updateLanguage(): void;
35
+ protected _onReady(): void;
36
+ protected firstUpdated(_changedProperties: PropertyValues): void;
37
+ shouldUpdate(_changedProperties: PropertyValues): boolean;
38
+ protected render(): TemplateResult<1>;
39
+ protected _isReadonly(): boolean;
40
+ protected _nodeTemplate(node: RulesetNode): TemplateResult | string;
41
+ protected static _getNodeStatusClasses(ruleset: RulesetUnion): string;
42
+ protected _updateSelectedNodes(): void;
43
+ protected static _updateSort(nodes: RulesetNode[], sortFunction: (a: RulesetNode, b: RulesetNode) => number): void;
44
+ protected _onNodeClicked(evt: MouseEvent, node: RulesetNode): void;
45
+ protected _onCopyClicked(): void;
46
+ protected _onAddClicked(lang: RulesetLang): void;
47
+ protected _onDeleteClicked(): void;
48
+ protected _doDelete(): void;
49
+ protected _onSearchClicked(): void;
50
+ protected _onSortClicked(sortBy: string): void;
51
+ protected _getSortFunction(): (a: RulesetNode, b: RulesetNode) => number;
52
+ protected _getRealm(): string | undefined;
53
+ protected _loadRulesets(): Promise<void>;
54
+ protected _buildTreeNodes(rulesets: RealmRuleset[], sortFunction: (a: RulesetNode, b: RulesetNode) => number): void;
55
+ }
56
+ export {};
@@ -0,0 +1,111 @@
1
+ var OrRuleList_1,__decorate=this&&this.__decorate||function(e,t,s,i){var l,r=arguments.length,o=r<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,s,i);else for(var n=e.length-1;n>=0;n--)(l=e[n])&&(o=(r<3?l(o):r>3?l(t,s,o):l(t,s))||o);return r>3&&o&&Object.defineProperty(t,s,o),o},__awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(l,r){function o(e){try{a(i.next(e))}catch(e){r(e)}}function n(e){try{a(i.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?l(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,n)}a((i=i.apply(e,t||[])).next())}))};import{css,html,LitElement}from"lit";import{customElement,property}from"lit/decorators.js";import"@openremote/or-translate";import manager,{Util}from"@openremote/core";import"@openremote/or-mwc-components/or-mwc-input";import{InputType}from"@openremote/or-mwc-components/or-mwc-input";import{style as OrAssetTreeStyle}from"@openremote/or-asset-tree";import{OrRules,OrRulesAddEvent,OrRulesRequestAddEvent,OrRulesRequestDeleteEvent,OrRulesRequestSelectionEvent,OrRulesSelectionEvent,RuleViewInfoMap}from"./index";import"@openremote/or-mwc-components/or-mwc-menu";import{getContentWithMenuTemplate}from"@openremote/or-mwc-components/or-mwc-menu";import{translate}from"@openremote/or-translate";import i18next from"i18next";import{showErrorDialog,showOkCancelDialog}from"@openremote/or-mwc-components/or-mwc-dialog";const style=css`
2
+ :host {
3
+ flex-grow: 1;
4
+ font-size: var(--internal-or-rules-list-text-size);
5
+
6
+ /*Override asset tree styles*/
7
+ --internal-or-asset-tree-header-height: var(--internal-or-rules-list-header-height);
8
+ }
9
+
10
+ #wrapper {
11
+ display: flex;
12
+ flex-direction: column;
13
+ height: 100%;
14
+ width: 100%;
15
+ }
16
+
17
+ #wrapper[data-disabled] {
18
+ opacity: 0.3;
19
+ pointer-events: none;
20
+ }
21
+
22
+ .node-container {
23
+ align-items: center;
24
+ padding-left: 10px;
25
+ }
26
+
27
+ .header-ruleset-type {
28
+ display: flex;
29
+ align-items: center;
30
+ height: var(--internal-or-asset-tree-header-height);
31
+ line-height: var(--internal-or-asset-tree-header-height);
32
+ color: var(--internal-or-rules-panel-color);
33
+ background-color: var(--internal-or-rules-header-background-color);
34
+ }
35
+
36
+ #header-btns {
37
+ --or-mwc-input-color: var(--internal-or-rules-text-color);
38
+ }
39
+
40
+ .header-ruleset-type p {
41
+ margin: 0 15px;
42
+ }
43
+
44
+ .node-status {
45
+ --or-icon-width: 18px;
46
+ margin-right: 8px;
47
+ }
48
+
49
+ .node-language{
50
+ padding-left: 10px;
51
+ opacity: 50%;
52
+ }
53
+
54
+ .iconfill-gray {
55
+ --or-icon-fill: var(--internal-or-rules-list-icon-color-ok);
56
+ }
57
+
58
+ .iconfill-red {
59
+ --or-icon-fill: var(--internal-or-rules-list-icon-color-error);
60
+ }
61
+ `;let OrRuleList=OrRuleList_1=class extends(translate(i18next)(LitElement)){constructor(){super(...arguments),this.readonly=!1,this.disabled=!1,this.multiSelect=!0,this._showLoading=!0,this._globalRulesets=!1,this._selectedNodes=[],this._rulesetPromises=new Map,this._ready=!1}static get styles(){return[OrAssetTreeStyle,style]}refresh(){return __awaiter(this,void 0,void 0,(function*(){this._nodes=void 0}))}get _allowedLanguages(){const e=this.config&&this.config.controls&&this.config.controls.allowedLanguages?[...this.config.controls.allowedLanguages]:OrRuleList_1.DEFAULT_ALLOWED_LANGUAGES,t=e.indexOf("GROOVY"),s=e.indexOf("FLOW");return manager.isSuperUser()?t<0&&e.push("GROOVY"):t>0&&e.splice(t,1),this._globalRulesets&&s>0&&e.splice(s,1),e}_updateLanguage(){const e=this._allowedLanguages;e&&0!==e.length?(!this.language||e.indexOf(this.language)<0)&&(this.language=e[0]):this.language=void 0}_onReady(){this._ready=!0,this._loadRulesets()}firstUpdated(e){super.firstUpdated(e),manager.ready&&this._onReady()}shouldUpdate(e){const t=super.shouldUpdate(e);if(this.sortBy||(this.sortBy="name"),e.has("language")&&this._updateLanguage(),e.has("_globalRulesets")&&(this._updateLanguage(),this.refresh()),manager.ready){if(!this._nodes)return this._loadRulesets(),!0;if(e.has("selectedIds")){let t=!0;const s=e.get("selectedIds");this.selectedIds&&s&&this.selectedIds.length===s.length&&(t=!!this.selectedIds.find((e=>s.indexOf(e)<0))),t&&this._updateSelectedNodes()}e.has("sortBy")&&OrRuleList_1._updateSort(this._nodes,this._getSortFunction())}return t}render(){this.language||this._updateLanguage();const e=this._allowedLanguages,t=["name","createdOn","status"];e&&e.length>1&&t.push("lang");let s="";return this._isReadonly()||(s=e&&e.length>1?getContentWithMenuTemplate(html`<or-mwc-input type="${InputType.BUTTON}" icon="plus"></or-mwc-input>`,e.map((e=>({value:e,text:i18next.t("rulesLanguages."+e)}))),this.language,(e=>this._onAddClicked(e))):html`<or-mwc-input type="${InputType.BUTTON}" icon="plus" @or-mwc-input-changed="${()=>this._onAddClicked(this.language)}"></or-mwc-input>`),html`
62
+ <div id="wrapper" ?data-disabled="${this.disabled}">
63
+ ${manager.isSuperUser()?html`
64
+ <div class="header-ruleset-type">
65
+ <p>${i18next.t("realmRules")}</p>
66
+
67
+ <div style="flex: 1 1 0; display: flex;">
68
+ <or-mwc-input style="margin: auto;" type="${InputType.SWITCH}" @or-mwc-input-changed="${e=>this._globalRulesets=e.detail.value}"></or-mwc-input>
69
+ </div>
70
+
71
+ <p>${i18next.t("globalRules")}</p>
72
+ </div>
73
+ `:""}
74
+
75
+ <div id="header">
76
+ <div id="title-container">
77
+ <or-translate id="title" value="rule_plural"></or-translate>
78
+ </div>
79
+
80
+ <div id="header-btns">
81
+ <or-mwc-input ?hidden="${this._isReadonly()||!this.selectedIds||0===this.selectedIds.length}" type="${InputType.BUTTON}" icon="content-copy" @or-mwc-input-changed="${()=>this._onCopyClicked()}"></or-mwc-input>
82
+ <or-mwc-input ?hidden="${this._isReadonly()||!this.selectedIds||0===this.selectedIds.length}" type="${InputType.BUTTON}" icon="delete" @or-mwc-input-changed="${()=>this._onDeleteClicked()}"></or-mwc-input>
83
+ ${s}
84
+ <or-mwc-input hidden type="${InputType.BUTTON}" icon="magnify" @or-mwc-input-changed="${()=>this._onSearchClicked()}"></or-mwc-input>
85
+
86
+ ${getContentWithMenuTemplate(html`<or-mwc-input type="${InputType.BUTTON}" icon="sort-variant" ></or-mwc-input>`,t.map((e=>({value:e,text:i18next.t(e)}))),this.sortBy,(e=>this._onSortClicked(e)))}
87
+ </div>
88
+ </div>
89
+
90
+ ${!this._nodes||this._showLoading?html`
91
+ <span id="loading"><or-translate value="loading"></or-translate></span>`:html`
92
+ <div id="list-container">
93
+ <ol id="list">
94
+ ${this._nodes.map((e=>this._nodeTemplate(e)))}
95
+ </ol>
96
+ </div>
97
+ `}
98
+
99
+ <div id="footer">
100
+
101
+ </div>
102
+ </div>
103
+ `}_isReadonly(){return this.readonly||!manager.hasRole("write:rules")}_nodeTemplate(e){let t="help",s="iconfill-gray",i="mdi-state-machine",l="Unknown language";switch(e.ruleset.status){case"DEPLOYED":t="",s="iconfill-gray";break;case"READY":t="check",s="iconfill-gray";break;case"COMPILATION_ERROR":case"LOOP_ERROR":case"EXECUTION_ERROR":t="alert-octagon",s="iconfill-red";break;case"DISABLED":t="minus-circle",s="iconfill-gray";break;case"PAUSED":t="calendar-arrow-right",s="iconfill-gray";break;case"EXPIRED":t="calendar-remove",s="iconfill-gray";break;case"REMOVED":t="close",s="iconfill-gray";break;default:t="stop",s="iconfill-gray"}switch(e.ruleset.lang){case"JSON":i="ray-start-arrow",l="rulesLanguages.JSON";break;case"FLOW":i="transit-connection-variant",l="rulesLanguages.FLOW";break;case"GROOVY":i="alpha-g-box-outline",l="rulesLanguages.GROOVY";break;case"JAVASCRIPT":i="language-javascript",l="rulesLanguages.JAVASCRIPT";break;default:i="mdi-state-machine",l="Unknown language"}return html`
104
+ <li ?data-selected="${e.selected}" @click="${t=>this._onNodeClicked(t,e)}">
105
+ <div class="node-container">
106
+ <or-icon style="--or-icon-width: 18px; margin-right: 8px;" icon="${i}" title="${i18next.t(l)}"></or-icon>
107
+ <span class="node-name">${e.ruleset.name}</span>
108
+ <or-icon class="node-status ${s}" title="${i18next.t("rulesetStatus."+(e.ruleset.status?e.ruleset.status:"NOSTATUS"))}" icon="${t}"></or-icon>
109
+ </div>
110
+ </li>
111
+ `}static _getNodeStatusClasses(e){let t=e.enabled?"bg-green":"bg-red";if(e.enabled&&e.meta&&e.meta.validity){const s=e.meta.validity,i=(new Date).getTime();s.start&&(i<s.start?t="bg-blue":s.end&&i>s.end?t="bg-grey":s.recurrence)}return t}_updateSelectedNodes(){const e=[],t=[];this._nodes&&this._nodes.forEach((s=>{this.selectedIds&&this.selectedIds.indexOf(s.ruleset.id)>=0?(e.push(s.ruleset.id),t.push(s),s.selected=!0):s.selected=!1})),this.selectedIds=e;const s=this._selectedNodes;this._selectedNodes=t,this.dispatchEvent(new OrRulesSelectionEvent({oldNodes:s,newNodes:t}))}static _updateSort(e,t){e&&e.sort(t)}_onNodeClicked(e,t){if(e.defaultPrevented)return;e.preventDefault();let s=[];const i=this._selectedNodes.indexOf(t);let l=!0,r=!0;!this._isReadonly()&&this.multiSelect&&(!this.config||!this.config.controls||!this.config.controls.multiSelect)&&(e.ctrlKey||e.metaKey)&&(r=!1,i>=0&&this._selectedNodes&&this._selectedNodes.length>1&&(l=!1)),r?s=[t]:l?i<0&&(s=[...this._selectedNodes],s.push(t)):i>=0&&(s=[...this._selectedNodes],s.splice(i,1)),Util.dispatchCancellableEvent(this,new OrRulesRequestSelectionEvent({oldNodes:this._selectedNodes,newNodes:s})).then((e=>{e.allow&&(this.selectedIds=e.detail.newNodes.map((e=>e.ruleset.id)))}))}_onCopyClicked(){if(1!==this._selectedNodes.length)return;const e=this._selectedNodes[0],t=JSON.parse(JSON.stringify(e.ruleset));delete t.lastModified,delete t.createdOn,delete t.status,delete t.error,delete t.id,t.name=t.name+" copy",this.config&&this.config.rulesetCopyHandler&&!this.config.rulesetCopyHandler(t)||Util.dispatchCancellableEvent(this,new OrRulesRequestAddEvent({ruleset:t,sourceRuleset:e.ruleset})).then((e=>{e.allow&&this.dispatchEvent(new OrRulesAddEvent(e.detail))}))}_onAddClicked(e){const t=this._globalRulesets?"global":"realm",s=manager.isSuperUser()?manager.displayRealm:manager.config.realm,i={id:0,type:t,name:OrRules.DEFAULT_RULESET_NAME,lang:e,realm:s,rules:void 0};if(this.config&&this.config.rulesetAddHandler&&!this.config.rulesetAddHandler(i))return;this.config&&this.config.rulesetTemplates&&this.config.rulesetTemplates[e]?i.rules=this.config.rulesetTemplates[e]:i.rules=RuleViewInfoMap[e].viewRulesetTemplate,"realm"===t&&(i.realm=s);const l={ruleset:i,isCopy:!1};Util.dispatchCancellableEvent(this,new OrRulesRequestAddEvent(l)).then((e=>{e.allow&&this.dispatchEvent(new OrRulesAddEvent(e.detail))}))}_onDeleteClicked(){this._selectedNodes.length>0&&Util.dispatchCancellableEvent(this,new OrRulesRequestDeleteEvent(this._selectedNodes)).then((e=>{e.allow&&this._doDelete()}))}_doDelete(){if(!this._selectedNodes||0===this._selectedNodes.length)return;const e=this._selectedNodes.map((e=>e.ruleset)),t=e.map((e=>"\n- "+e.name)),s=()=>__awaiter(this,void 0,void 0,(function*(){this.disabled=!0;let t=!1;for(const s of e)if(!this.config||!this.config.rulesetDeleteHandler||this.config.rulesetDeleteHandler(s))try{let e;switch(s.type){case"asset":e=yield manager.rest.api.RulesResource.deleteAssetRuleset(s.id);break;case"realm":e=yield manager.rest.api.RulesResource.deleteRealmRuleset(s.id);break;case"global":e=yield manager.rest.api.RulesResource.deleteGlobalRuleset(s.id)}204!==e.status&&(console.error("Delete ruleset returned unexpected status '"+e.status+"': "+JSON.stringify(s,null,2)),t=!0)}catch(e){console.error("Failed to delete ruleset: "+JSON.stringify(s,null,2),e),t=!0}t&&showErrorDialog(i18next.t("deleteAssetsFailed")),this.disabled=!1,this.refresh()}));showOkCancelDialog(i18next.t("deleteRulesets"),i18next.t("deleteRulesetsConfirm",{ruleNames:t}),i18next.t("delete")).then((e=>{e&&s()}))}_onSearchClicked(){}_onSortClicked(e){this.sortBy=e}_getSortFunction(){return"createdOn"===this.sortBy?Util.sortByNumber((e=>e.ruleset[this.sortBy])):Util.sortByString((e=>e.ruleset[this.sortBy]))}_getRealm(){return manager.isSuperUser()?manager.displayRealm:manager.getRealm()}_loadRulesets(){return __awaiter(this,void 0,void 0,(function*(){const e=this._getSortFunction();let t;if(this._globalRulesets)0!=this._rulesetPromises.size||this._rulesetPromises.has("global")||this._rulesetPromises.set("global",new Promise((e=>__awaiter(this,void 0,void 0,(function*(){const t=yield manager.rest.api.RulesResource.getGlobalRulesets({fullyPopulate:!0});e(t.data)}))))),t=yield this._rulesetPromises.get("global"),this._rulesetPromises.delete("global");else{const e=this._getRealm()||manager.displayRealm;0!=this._rulesetPromises.size||this._rulesetPromises.has(e)||this._rulesetPromises.set(e,new Promise((t=>__awaiter(this,void 0,void 0,(function*(){const s={fullyPopulate:!0,language:this._allowedLanguages},i=yield manager.rest.api.RulesResource.getRealmRulesets(e,s);t(i.data)}))))),t=yield this._rulesetPromises.get(e),this._rulesetPromises.delete(e)}t&&this._buildTreeNodes(t,e)}))}_buildTreeNodes(e,t){if(e&&0!==e.length){const s=e.map((e=>({ruleset:e})));s.sort(t),this._nodes=s}else this._nodes=[];this.selectedIds&&this.selectedIds.length>0&&this._updateSelectedNodes(),this._showLoading=!1}};OrRuleList.DEFAULT_ALLOWED_LANGUAGES=["JSON","GROOVY","JAVASCRIPT","FLOW"],__decorate([property({type:Object})],OrRuleList.prototype,"config",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"readonly",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"disabled",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"multiSelect",void 0),__decorate([property({type:Array})],OrRuleList.prototype,"selectedIds",void 0),__decorate([property({type:String})],OrRuleList.prototype,"sortBy",void 0),__decorate([property({type:String})],OrRuleList.prototype,"language",void 0),__decorate([property({attribute:!1})],OrRuleList.prototype,"_nodes",void 0),__decorate([property({attribute:!1})],OrRuleList.prototype,"_showLoading",void 0),__decorate([property({type:Boolean})],OrRuleList.prototype,"_globalRulesets",void 0),OrRuleList=OrRuleList_1=__decorate([customElement("or-rule-list")],OrRuleList);export{OrRuleList};