@genesislcap/pbc-notify-ui 1.0.29 → 1.0.31

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 (82) hide show
  1. package/dist/dts/components/components.d.ts.map +1 -1
  2. package/dist/dts/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.d.ts.map +1 -1
  3. package/dist/dts/components/foundation-inbox/inbox-base/inbox-base.d.ts +9 -9
  4. package/dist/dts/components/foundation-inbox/inbox-base/inbox-base.d.ts.map +1 -1
  5. package/dist/dts/components/foundation-inbox/inbox.template.d.ts.map +1 -1
  6. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.d.ts +12 -11
  7. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.d.ts.map +1 -1
  8. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.d.ts +1 -1
  9. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.d.ts.map +1 -1
  10. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.d.ts +4 -12
  11. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.d.ts.map +1 -1
  12. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.d.ts +14 -9
  13. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.d.ts.map +1 -1
  14. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.d.ts.map +1 -1
  15. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.d.ts +1 -6
  16. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.d.ts.map +1 -1
  17. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.d.ts +29 -0
  18. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.d.ts.map +1 -0
  19. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.d.ts +3 -0
  20. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.d.ts.map +1 -0
  21. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.d.ts +10 -6
  22. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.d.ts.map +1 -1
  23. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.d.ts.map +1 -1
  24. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.types.d.ts +1 -8
  25. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.types.d.ts.map +1 -1
  26. package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.tabs.d.ts.map +1 -1
  27. package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts +55 -0
  28. package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts.map +1 -0
  29. package/dist/dts/components/foundation-notification-dashboard/styles/condition-builder.styles.d.ts.map +1 -0
  30. package/dist/dts/components/foundation-notification-dashboard/styles/dynamic-rule.styles.d.ts +3 -0
  31. package/dist/dts/components/foundation-notification-dashboard/styles/dynamic-rule.styles.d.ts.map +1 -0
  32. package/dist/dts/components/foundation-notification-dashboard/types/logical-operator.d.ts +4 -0
  33. package/dist/dts/components/foundation-notification-dashboard/types/logical-operator.d.ts.map +1 -1
  34. package/dist/dts/notify.types.d.ts +60 -0
  35. package/dist/dts/notify.types.d.ts.map +1 -0
  36. package/dist/dts/services/inbox.service.d.ts.map +1 -1
  37. package/dist/esm/components/components.js +2 -2
  38. package/dist/esm/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.js +3 -3
  39. package/dist/esm/components/foundation-inbox/inbox-base/inbox-base.js +10 -12
  40. package/dist/esm/components/foundation-inbox/inbox.template.js +1 -2
  41. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.js +84 -60
  42. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.js +42 -28
  43. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.js +5 -4
  44. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.js +94 -102
  45. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.js +11 -14
  46. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.js +0 -7
  47. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-management.js +2 -2
  48. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.js +169 -0
  49. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.js +66 -0
  50. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.js +95 -115
  51. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.js +16 -22
  52. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-management.js +2 -2
  53. package/dist/esm/components/foundation-notification-dashboard/notification-dashboard.tabs.js +6 -4
  54. package/dist/esm/components/foundation-notification-dashboard/notification-dashboard.utils.js +276 -0
  55. package/dist/esm/components/foundation-notification-dashboard/{components/templates/template-dialog/condition-builder → styles}/condition-builder.styles.js +6 -6
  56. package/dist/esm/components/foundation-notification-dashboard/{components/templates/template-dialog/template-dialog.styles.js → styles/dynamic-rule.styles.js} +24 -8
  57. package/dist/esm/components/foundation-notification-dashboard/types/logical-operator.js +4 -0
  58. package/dist/esm/notify.types.js +70 -0
  59. package/dist/esm/services/inbox.service.js +1 -5
  60. package/package.json +1 -1
  61. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.styles.d.ts +0 -2
  62. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.styles.d.ts.map +0 -1
  63. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.styles.d.ts +0 -2
  64. package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.styles.d.ts.map +0 -1
  65. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.d.ts +0 -32
  66. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.d.ts.map +0 -1
  67. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.styles.d.ts.map +0 -1
  68. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.template.d.ts +0 -3
  69. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.template.d.ts.map +0 -1
  70. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.styles.d.ts +0 -2
  71. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.styles.d.ts.map +0 -1
  72. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.utils.d.ts +0 -41
  73. package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.utils.d.ts.map +0 -1
  74. package/dist/dts/components/foundation-notification-dashboard/styles/rules-and-templates.styles.d.ts +0 -2
  75. package/dist/dts/components/foundation-notification-dashboard/styles/rules-and-templates.styles.d.ts.map +0 -1
  76. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.styles.js +0 -53
  77. package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.styles.js +0 -95
  78. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.js +0 -179
  79. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.template.js +0 -42
  80. package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.utils.js +0 -119
  81. package/dist/esm/components/foundation-notification-dashboard/styles/rules-and-templates.styles.js +0 -17
  82. /package/dist/dts/components/foundation-notification-dashboard/{components/templates/template-dialog/condition-builder → styles}/condition-builder.styles.d.ts +0 -0
@@ -1,13 +1,12 @@
1
1
  import { sync } from '@genesislcap/foundation-utils';
2
2
  import { html, ref, repeat } from '@microsoft/fast-element';
3
+ import { Severity, UpdateType } from '../../../../../notify.types';
3
4
  import { eventDetail } from '../../../../../utils/eventDetail';
4
- import { ALL_SEVERITIES } from '../../../types/severity';
5
- import { UpdateType } from '../../rules/rule-dialog/rule-dialog.types';
6
5
  export const TemplateDialogTemplate = html `
7
- <zero-modal ${ref('dialog')} class="template-dialog" :onCloseCallback=${(x) => () => x.close()}>
8
- <div slot="top" class="template-dialog-top">${(x) => x.templateDialogTitle}</div>
6
+ <zero-modal ${ref('dialog')} class="dialog" :onCloseCallback=${(x) => () => x.close()}>
7
+ <div slot="top" class="dialog-top">${(x) => x.templateDialogTitle}</div>
9
8
 
10
- <div class="template-dialog-content">
9
+ <div class="dialog-content">
11
10
  <div class="content-row">
12
11
  <div class="control">
13
12
  <label>Name</label>
@@ -46,10 +45,11 @@ export const TemplateDialogTemplate = html `
46
45
  value-field="value"
47
46
  label-field="value"
48
47
  option-element="zero-option"
49
- :data=${(_) => ALL_SEVERITIES.map((value) => ({ value, label: value }))}
48
+ :data=${(_) => Object.values(Severity).map((value) => ({ value }))}
50
49
  ></options-datasource>
51
50
  </zero-select>
52
51
  </div>
52
+
53
53
  <div class="control">
54
54
  <label>Update Type</label>
55
55
  <zero-multiselect
@@ -83,8 +83,8 @@ export const TemplateDialogTemplate = html `
83
83
 
84
84
  <div class="control">
85
85
  <label>Parameter(s)</label>
86
- <div class="parameters">
87
- <div class="content-row parameter">
86
+ <div class="items">
87
+ <div class="content-row item">
88
88
  ${repeat((x) => x.parameters, html `
89
89
  <parameter-builder
90
90
  :parameter=${(x) => x}
@@ -95,40 +95,34 @@ export const TemplateDialogTemplate = html `
95
95
  </div>
96
96
 
97
97
  <div class="content-row">
98
- <zero-button @click=${(x) => x.newParameter()}>
99
- <zero-icon name="plus"></zero-icon>
100
- Parameter
101
- </zero-button>
98
+ <zero-button @click=${(x) => x.newParameter()}>+ Parameter</zero-button>
102
99
  </div>
103
100
  </div>
104
101
  </div>
105
102
 
106
103
  <div class="control">
107
104
  <label>Condition(s)</label>
108
- <div class="conditions">
109
- <div class="content-row condition">
105
+ <div class="items">
106
+ <div class="content-row item">
110
107
  ${repeat((x) => x.conditions, html `
111
- <condition-builder
112
- :resource=${(x, c) => c.parent.resource}
108
+ <template-condition-builder
109
+ :fields=${(x, c) => c.parent.fields}
113
110
  :parameters=${(x, c) => c.parent.parameters}
114
111
  :condition=${(x) => x}
115
112
  @edit=${(x, c) => c.parent.editCondition(eventDetail(c))}
116
113
  @delete=${(x, c) => c.parent.deleteCondition(eventDetail(c))}
117
- ></condition-builder>
114
+ ></template-condition-builder>
118
115
  `)}
119
116
  </div>
120
117
 
121
118
  <div class="content-row">
122
- <zero-button @click=${(x) => x.newCondition()}>
123
- <zero-icon name="plus"></zero-icon>
124
- Condition
125
- </zero-button>
119
+ <zero-button @click=${(x) => x.newCondition()}>+ Condition</zero-button>
126
120
  </div>
127
121
  </div>
128
122
  </div>
129
123
  </div>
130
124
 
131
- <div slot="bottom" class="template-dialog-bottom">
125
+ <div slot="bottom" class="dialog-bottom">
132
126
  <zero-button appearance="accent" @click=${(x) => x.submit()}>Submit</zero-button>
133
127
  </div>
134
128
  </zero-modal>
@@ -2,7 +2,7 @@ import { __awaiter, __decorate } from "tslib";
2
2
  import { showNotificationDialog } from '@genesislcap/foundation-notifications';
3
3
  import { css, customElement, FASTElement, html, ref, repeat } from '@microsoft/fast-element';
4
4
  import { TemplateService } from '../../../../services/template.service';
5
- import { rulesAndTemplatesStyles } from '../../styles/rules-and-templates.styles';
5
+ import { DynamicRuleManagementStyles } from '../../styles/dynamic-rule.styles';
6
6
  import { TEMPLATE_MANAGEMENT_COLUMNS } from './columns';
7
7
  import { TemplateDialogMode } from './template-dialog/template-dialog.types';
8
8
  let TemplateManagement = class TemplateManagement extends FASTElement {
@@ -63,7 +63,7 @@ TemplateManagement = __decorate([
63
63
  <template-dialog ${ref('templateDialog')}></template-dialog>
64
64
  `,
65
65
  styles: css `
66
- ${rulesAndTemplatesStyles}
66
+ ${DynamicRuleManagementStyles}
67
67
  `,
68
68
  })
69
69
  ], TemplateManagement);
@@ -19,10 +19,12 @@ export const NOTIFICATION_DASHBOARD_TABS = [
19
19
  component: 'route-management',
20
20
  right: 'NotificationRouteView',
21
21
  },
22
+ /* TODO: Not needed at the moment
22
23
  {
23
- id: 'notify-audit',
24
- name: 'Notify Audit',
25
- component: 'notify-audit-management',
26
- right: 'NotificationAuditView',
24
+ id: 'notify-audit',
25
+ name: 'Notify Audit',
26
+ component: 'notify-audit-management',
27
+ right: 'NotificationAuditView',
27
28
  },
29
+ */
28
30
  ];
@@ -0,0 +1,276 @@
1
+ var _a;
2
+ import { __decorate } from "tslib";
3
+ import { showNotification } from '@genesislcap/foundation-notifications';
4
+ import { UUID } from '@genesislcap/foundation-utils';
5
+ import { EmptyValue, ExpressionType, LogicalOperator, ParamSourceType, ParamType, RightCriteria, nullAndBlankLogicalOperatorValues, } from '../../notify.types';
6
+ import { logger } from '../../utils';
7
+ export class UUIDGenerator {
8
+ }
9
+ _a = UUIDGenerator;
10
+ UUIDGenerator.createUUID = () => _a.uuid.createId();
11
+ __decorate([
12
+ UUID
13
+ ], UUIDGenerator, "uuid", void 0);
14
+ // #region Rules and Templates
15
+ class ConditionUtils {
16
+ static transformLogicalOperator(logicalOperator) {
17
+ switch (logicalOperator) {
18
+ case LogicalOperator.NULL:
19
+ case LogicalOperator.BLANK:
20
+ return LogicalOperator.EQUALS;
21
+ case LogicalOperator.NOT_NULL:
22
+ case LogicalOperator.NOT_BLANK:
23
+ return LogicalOperator.NOT_EQUALS;
24
+ default:
25
+ return logicalOperator;
26
+ }
27
+ }
28
+ static buildLogicalOperator(condition) {
29
+ if (condition.RIGHT.TYPE === EmptyValue.NULL) {
30
+ return condition.OPERATION === LogicalOperator.EQUALS
31
+ ? LogicalOperator.NULL
32
+ : LogicalOperator.NOT_NULL;
33
+ }
34
+ else if (condition.RIGHT.VALUE === EmptyValue.BLANK) {
35
+ return condition.OPERATION === LogicalOperator.EQUALS
36
+ ? LogicalOperator.BLANK
37
+ : LogicalOperator.NOT_BLANK;
38
+ }
39
+ else {
40
+ return condition.OPERATION;
41
+ }
42
+ }
43
+ static getRightExpression(condition, parameters) {
44
+ // 1. Check LOGICAL_OPERATOR for null values
45
+ if (condition.LOGICAL_OPERATOR === LogicalOperator.NULL ||
46
+ condition.LOGICAL_OPERATOR === LogicalOperator.NOT_NULL) {
47
+ return {
48
+ TYPE: EmptyValue.NULL,
49
+ };
50
+ }
51
+ // 2. Check LOGICAL_OPERATOR for blank values
52
+ if (condition.LOGICAL_OPERATOR === LogicalOperator.BLANK ||
53
+ condition.LOGICAL_OPERATOR === LogicalOperator.NOT_BLANK) {
54
+ return {
55
+ TYPE: 'STRING',
56
+ VALUE: ConditionUtils.handleNullOrBlankLogicalOperator(condition.LOGICAL_OPERATOR),
57
+ };
58
+ }
59
+ // 3. Handle by RIGHT_CRITERIA
60
+ switch (condition.RIGHT_CRITERIA) {
61
+ case 'USER_ENTRY':
62
+ return {
63
+ TYPE: 'PLACEHOLDER',
64
+ KEY: parameters.find((parameter) => parameter.UUID === condition.RIGHT_VALUE).PARAM_NAME,
65
+ };
66
+ case 'FIELD': // Only for Rules
67
+ return {
68
+ TYPE: 'FIELD',
69
+ NAME: condition.RIGHT_VALUE,
70
+ };
71
+ case 'VALUE':
72
+ switch (condition.LEFT_VALUE.FIELD_TYPE) {
73
+ case 'BOOLEAN':
74
+ return {
75
+ TYPE: 'BOOLEAN',
76
+ VALUE: condition.RIGHT_VALUE,
77
+ };
78
+ case 'STRING':
79
+ case 'ENUM':
80
+ return {
81
+ TYPE: 'STRING',
82
+ VALUE: condition.RIGHT_VALUE,
83
+ };
84
+ case 'INT':
85
+ case 'SHORT':
86
+ case 'DOUBLE':
87
+ case 'LONG':
88
+ case 'BIGDECIMAL':
89
+ return {
90
+ TYPE: 'NUMBER',
91
+ VALUE: condition.RIGHT_VALUE,
92
+ };
93
+ default:
94
+ return {
95
+ TYPE: 'FIELD',
96
+ NAME: condition.RIGHT_VALUE,
97
+ };
98
+ }
99
+ default:
100
+ logger.error(`Unexpected RIGHT_CRITERIA: ${condition.RIGHT_CRITERIA}`);
101
+ return {};
102
+ }
103
+ }
104
+ static handleNullOrBlankLogicalOperator(logicalOperator) {
105
+ switch (logicalOperator) {
106
+ case LogicalOperator.NULL:
107
+ case LogicalOperator.NOT_NULL:
108
+ return EmptyValue.NULL;
109
+ case LogicalOperator.BLANK:
110
+ case LogicalOperator.NOT_BLANK:
111
+ return EmptyValue.BLANK;
112
+ default:
113
+ logger.error(`Unexpected LogicalOperator: ${logicalOperator}`);
114
+ break;
115
+ }
116
+ }
117
+ }
118
+ export class DynamicRuleUtils {
119
+ static createConditions(conditions, parameters) {
120
+ return conditions.map((condition) => ({
121
+ LEFT: {
122
+ TYPE: 'FIELD', // TODO: Use ParamType
123
+ NAME: condition.LEFT_VALUE.FIELD_NAME,
124
+ },
125
+ OPERATION: ConditionUtils.transformLogicalOperator(condition.LOGICAL_OPERATOR),
126
+ RIGHT: ConditionUtils.getRightExpression(condition, parameters),
127
+ }));
128
+ }
129
+ }
130
+ DynamicRuleUtils.createEmptyCondition = () => ({
131
+ ID: null,
132
+ LEFT_VALUE: null,
133
+ LOGICAL_OPERATOR: LogicalOperator.EQUALS,
134
+ RIGHT_CRITERIA: RightCriteria.VALUE,
135
+ RIGHT_VALUE: null,
136
+ });
137
+ DynamicRuleUtils.createAssignment = (field, value) => ({
138
+ FIELD: {
139
+ TYPE: 'FIELD',
140
+ NAME: field,
141
+ },
142
+ VALUE: {
143
+ TYPE: 'STRING',
144
+ VALUE: value,
145
+ },
146
+ });
147
+ DynamicRuleUtils.getAssignmentValue = (assignments, field) => assignments.find((assignment) => assignment.FIELD.NAME === field).VALUE.VALUE;
148
+ export class TemplateUtils {
149
+ static getParameters(parameters) {
150
+ if (!parameters) {
151
+ return [];
152
+ }
153
+ return Object.keys(parameters).map((key) => ({
154
+ UUID: UUIDGenerator.createUUID(),
155
+ PARAM_NAME: parameters[key].PARAM_NAME,
156
+ PARAM_LABEL: parameters[key].PARAM_LABEL,
157
+ PARAM_TYPE: parameters[key].PARAM_TYPE,
158
+ PARAM_SOURCE_TYPE: parameters[key].PARAM_SOURCE_TYPE,
159
+ PARAM_SOURCE: parameters[key].PARAM_SOURCE,
160
+ }));
161
+ }
162
+ static buildRightValue(logicalOperator, condition, parameters) {
163
+ var _b;
164
+ // Is Null or Blank
165
+ if (nullAndBlankLogicalOperatorValues.includes(logicalOperator)) {
166
+ return EmptyValue.BLANK;
167
+ }
168
+ // Find parameter name by key
169
+ if (condition.RIGHT.TYPE === ExpressionType.PLACEHOLDER) {
170
+ return parameters.find((parameter) => parameter.PARAM_NAME === condition.RIGHT.KEY).UUID;
171
+ }
172
+ // If value is null, then NAME is filled
173
+ return (_b = condition.RIGHT.VALUE) !== null && _b !== void 0 ? _b : condition.RIGHT.NAME;
174
+ }
175
+ static getConditions(conditions, parameters) {
176
+ return conditions.map((condition) => {
177
+ var _b;
178
+ const logicalOperator = ConditionUtils.buildLogicalOperator(condition);
179
+ return {
180
+ ID: UUIDGenerator.createUUID(),
181
+ LEFT_VALUE: (_b = condition.LEFT.VALUE) !== null && _b !== void 0 ? _b : condition.LEFT.NAME,
182
+ LOGICAL_OPERATOR: logicalOperator,
183
+ RIGHT_CRITERIA: condition.RIGHT.TYPE === ExpressionType.PLACEHOLDER
184
+ ? RightCriteria.USER_ENTRY
185
+ : RightCriteria.VALUE,
186
+ RIGHT_VALUE: this.buildRightValue(logicalOperator, condition, parameters),
187
+ };
188
+ });
189
+ }
190
+ static createParameterDetails(parameters) {
191
+ if (!parameters || parameters.length === 0) {
192
+ return {};
193
+ }
194
+ const map = {};
195
+ parameters.forEach((parameter) => {
196
+ var _b;
197
+ map[parameter.PARAM_NAME] = {
198
+ PARAM_LABEL: parameter.PARAM_LABEL,
199
+ PARAM_TYPE: parameter.PARAM_TYPE,
200
+ PARAM_SOURCE_TYPE: parameter.PARAM_SOURCE_TYPE,
201
+ PARAM_SOURCE: (_b = parameter.PARAM_SOURCE) !== null && _b !== void 0 ? _b : '',
202
+ PARAM_OPERATOR: 'EQUALS', // TODO: Remove
203
+ };
204
+ });
205
+ return map;
206
+ }
207
+ }
208
+ TemplateUtils.createEmptyParameter = () => ({
209
+ UUID: UUIDGenerator.createUUID(),
210
+ PARAM_NAME: null,
211
+ PARAM_LABEL: null,
212
+ PARAM_TYPE: ParamType.STRING,
213
+ PARAM_SOURCE_TYPE: ParamSourceType.USER_TEXT,
214
+ PARAM_SOURCE: null,
215
+ });
216
+ export class RuleUtils {
217
+ static buildRightValue(logicalOperator, condition) {
218
+ var _b;
219
+ // Is Null or Blank
220
+ if (nullAndBlankLogicalOperatorValues.includes(logicalOperator)) {
221
+ return EmptyValue.BLANK;
222
+ }
223
+ // Get KEY
224
+ if (condition.RIGHT.TYPE === ExpressionType.PLACEHOLDER) {
225
+ return condition.RIGHT.KEY;
226
+ }
227
+ // If value is null, then NAME is filled
228
+ return (_b = condition.RIGHT.VALUE) !== null && _b !== void 0 ? _b : condition.RIGHT.NAME;
229
+ }
230
+ static getConditions(conditions) {
231
+ return conditions.map((condition) => {
232
+ var _b;
233
+ const logicalOperator = ConditionUtils.buildLogicalOperator(condition);
234
+ return {
235
+ ID: UUIDGenerator.createUUID(),
236
+ LEFT_VALUE: (_b = condition.LEFT.VALUE) !== null && _b !== void 0 ? _b : condition.LEFT.NAME,
237
+ LOGICAL_OPERATOR: logicalOperator,
238
+ RIGHT_CRITERIA: condition.RIGHT.TYPE === 'FIELD' ? 'FIELD' : 'VALUE',
239
+ RIGHT_VALUE: this.buildRightValue(logicalOperator, condition),
240
+ };
241
+ });
242
+ }
243
+ }
244
+ // #endregion
245
+ // #region Screen
246
+ export function showNotificationError(error) {
247
+ var _b, _c;
248
+ showNotification({
249
+ title: (_b = error[0]) === null || _b === void 0 ? void 0 : _b.CODE,
250
+ body: (_c = error[0]) === null || _c === void 0 ? void 0 : _c.TEXT,
251
+ config: {
252
+ snackbar: {
253
+ type: 'error',
254
+ },
255
+ },
256
+ }, 'zero');
257
+ }
258
+ export function getNotificationDialogDeleteObject(id, entityName, service, deleteEvent) {
259
+ return {
260
+ title: 'Confirm Delete',
261
+ body: `Do you really want to delete this ${entityName}?`,
262
+ dialog: {
263
+ dismissingAction: {
264
+ label: 'Dismiss',
265
+ action: () => null,
266
+ },
267
+ confirmingActions: [
268
+ {
269
+ label: 'Confirm',
270
+ action: () => service[deleteEvent](id),
271
+ },
272
+ ],
273
+ },
274
+ };
275
+ }
276
+ // #endregion
@@ -12,11 +12,6 @@ export const ConditionBuilderStyles = css `
12
12
 
13
13
  .delete {
14
14
  margin: 0;
15
- background-color: var(--neutral-layer-1);
16
- }
17
-
18
- .delete:hover {
19
- background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);
20
15
  }
21
16
 
22
17
  zero-text-field {
@@ -35,12 +30,17 @@ export const ConditionBuilderStyles = css `
35
30
  width: 160px;
36
31
  }
37
32
 
33
+ .logical-operator-null-and-blank {
34
+ width: 100%;
35
+ }
36
+
38
37
  zero-select.right-criteria::part(control) {
39
38
  width: 135px;
40
39
  }
41
40
 
42
- zero-select.right-criteria-user-entry {
41
+ zero-select.right-criteria-select {
43
42
  width: 100%;
43
+ min-width: 0;
44
44
  }
45
45
 
46
46
  zero-select::part(listbox) {
@@ -1,4 +1,21 @@
1
1
  import { css } from '@microsoft/fast-element';
2
+ export const DynamicRuleManagementStyles = css `
3
+ .container {
4
+ display: flex;
5
+ height: 100%;
6
+ flex-direction: column;
7
+ }
8
+
9
+ .header {
10
+ display: flex;
11
+ flex-direction: row-reverse;
12
+ }
13
+
14
+ .grid {
15
+ height: 100%;
16
+ }
17
+ `;
18
+ // #region Dialog
2
19
  const modalWidthPx = 940;
3
20
  const top = css `
4
21
  zero-modal::part(top) {
@@ -7,7 +24,7 @@ const top = css `
7
24
  margin: 0;
8
25
  }
9
26
 
10
- .template-dialog-top {
27
+ .dialog-top {
11
28
  font-weight: bold;
12
29
  align-self: center;
13
30
  }
@@ -19,11 +36,11 @@ const bottom = css `
19
36
  margin: 0;
20
37
  }
21
38
 
22
- .template-dialog-bottom {
39
+ .dialog-bottom {
23
40
  display: flex;
24
41
  }
25
42
  `;
26
- export const TemplateDialogStyles = css `
43
+ export const DynamicRuleDialogStyles = css `
27
44
  ${top}
28
45
  ${bottom}
29
46
 
@@ -33,7 +50,7 @@ export const TemplateDialogStyles = css `
33
50
  border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);
34
51
  }
35
52
 
36
- .template-dialog-content {
53
+ .dialog-content {
37
54
  display: flex;
38
55
  flex-direction: column;
39
56
  width: ${String(modalWidthPx)}px;
@@ -55,8 +72,7 @@ export const TemplateDialogStyles = css `
55
72
  gap: calc(var(--design-unit) * 2px);
56
73
  }
57
74
 
58
- .parameters,
59
- .conditions {
75
+ .items {
60
76
  border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);
61
77
  border-radius: calc(var(--control-corner-radius) * 1px);
62
78
  display: flex;
@@ -64,8 +80,7 @@ export const TemplateDialogStyles = css `
64
80
  flex-direction: column;
65
81
  }
66
82
 
67
- .parameter,
68
- .condition {
83
+ .item {
69
84
  gap: 0;
70
85
  flex-direction: column;
71
86
  margin-bottom: 0;
@@ -95,3 +110,4 @@ export const TemplateDialogStyles = css `
95
110
  min-width: revert-layer;
96
111
  }
97
112
  `;
113
+ // #endregion
@@ -2,6 +2,10 @@ export const LOGICAL_OPERATOR_EQUALS = 'EQUALS';
2
2
  export const LOGICAL_OPERATOR_NOT_EQUALS = 'NOT_EQUALS';
3
3
  export const LOGICAL_OPERATOR_GREATER_THAN = 'GREATER_THAN';
4
4
  export const LOGICAL_OPERATOR_LESS_THAN = 'LESS_THAN';
5
+ export const LOGICAL_OPERATOR_NULL = 'NULL';
6
+ export const LOGICAL_OPERATOR_NOT_NULL = 'NOT_NULL';
7
+ export const LOGICAL_OPERATOR_BLANK = 'BLANK_NULL';
8
+ export const LOGICAL_OPERATOR_NOT_BLANK = 'NOT_BLANK';
5
9
  export const ALL_LOGICAL_OPERATORS = [
6
10
  LOGICAL_OPERATOR_EQUALS,
7
11
  LOGICAL_OPERATOR_NOT_EQUALS,
@@ -0,0 +1,70 @@
1
+ // #region Enums
2
+ export var LogicalOperator;
3
+ (function (LogicalOperator) {
4
+ LogicalOperator["EQUALS"] = "EQUALS";
5
+ LogicalOperator["NOT_EQUALS"] = "NOT_EQUALS";
6
+ LogicalOperator["GREATER_THAN"] = "GREATER_THAN";
7
+ LogicalOperator["LESS_THAN"] = "LESS_THAN";
8
+ LogicalOperator["NULL"] = "NULL";
9
+ LogicalOperator["NOT_NULL"] = "NOT_NULL";
10
+ LogicalOperator["BLANK"] = "BLANK";
11
+ LogicalOperator["NOT_BLANK"] = "NOT_BLANK";
12
+ })(LogicalOperator || (LogicalOperator = {}));
13
+ export const nullAndBlankLogicalOperatorValues = [
14
+ LogicalOperator.NULL,
15
+ LogicalOperator.NOT_NULL,
16
+ LogicalOperator.BLANK,
17
+ LogicalOperator.NOT_BLANK,
18
+ ];
19
+ export var RightCriteria;
20
+ (function (RightCriteria) {
21
+ RightCriteria["VALUE"] = "VALUE";
22
+ RightCriteria["USER_ENTRY"] = "USER_ENTRY";
23
+ })(RightCriteria || (RightCriteria = {}));
24
+ export var ParamType;
25
+ (function (ParamType) {
26
+ // FIELD = 'FIELD',
27
+ ParamType["STRING"] = "STRING";
28
+ // BOOLEAN = 'BOOLEAN',
29
+ ParamType["NUMBER"] = "NUMBER";
30
+ })(ParamType || (ParamType = {}));
31
+ export var ParamSourceType;
32
+ (function (ParamSourceType) {
33
+ ParamSourceType["USER_TEXT"] = "USER_TEXT";
34
+ ParamSourceType["DEFINED_GROUP"] = "DEFINED_GROUP";
35
+ ParamSourceType["REQ_REP"] = "REQ_REP";
36
+ })(ParamSourceType || (ParamSourceType = {}));
37
+ export var Severity;
38
+ (function (Severity) {
39
+ Severity["INFORMATION"] = "INFORMATION";
40
+ Severity["CRITICAL"] = "CRITICAL";
41
+ Severity["SERIOUS"] = "SERIOUS";
42
+ Severity["WARNING"] = "WARNING";
43
+ })(Severity || (Severity = {}));
44
+ export var ExpressionType;
45
+ (function (ExpressionType) {
46
+ ExpressionType["FIELD"] = "FIELD";
47
+ ExpressionType["NUMBER"] = "NUMBER";
48
+ ExpressionType["STRING"] = "STRING";
49
+ ExpressionType["PLACEHOLDER"] = "PLACEHOLDER";
50
+ })(ExpressionType || (ExpressionType = {}));
51
+ export var Assignment;
52
+ (function (Assignment) {
53
+ Assignment["HEADER"] = "HEADER";
54
+ Assignment["BODY"] = "BODY";
55
+ Assignment["NOTIFY_SEVERITY"] = "NOTIFY_SEVERITY";
56
+ Assignment["TOPIC"] = "TOPIC";
57
+ })(Assignment || (Assignment = {}));
58
+ export var UpdateType;
59
+ (function (UpdateType) {
60
+ UpdateType["INSERT"] = "INSERT";
61
+ UpdateType["MODIFY"] = "MODIFY";
62
+ UpdateType["DELETE"] = "DELETE";
63
+ })(UpdateType || (UpdateType = {}));
64
+ export const defaultUpdateType = [UpdateType.INSERT];
65
+ export var EmptyValue;
66
+ (function (EmptyValue) {
67
+ EmptyValue["BLANK"] = "";
68
+ EmptyValue["NULL"] = "NULL";
69
+ })(EmptyValue || (EmptyValue = {}));
70
+ // #endregion
@@ -8,11 +8,7 @@ class FoundationInboxServiceImpl {
8
8
  this.store = {
9
9
  items: [],
10
10
  };
11
- this.modifyAlert = (alert, details) => {
12
- var _a;
13
- return ((_a = alert.DETAILS) === null || _a === void 0 ? void 0 : _a.ROW_REF) === (details === null || details === void 0 ? void 0 : details.DETAILS.ROW_REF)
14
- ? Object.assign(Object.assign({}, alert), details) : alert;
15
- };
11
+ this.modifyAlert = (alert, details) => { var _a; return ((_a = alert.DETAILS) === null || _a === void 0 ? void 0 : _a.ROW_REF) === (details === null || details === void 0 ? void 0 : details.DETAILS.ROW_REF) ? Object.assign(Object.assign({}, alert), details) : alert; };
16
12
  }
17
13
  getStream() {
18
14
  return this.connect.stream('ALL_NOTIFY_ALERT_RECORDS', (result) => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-notify-ui",
3
3
  "description": "Genesis PBC Notify UI",
4
- "version": "1.0.29",
4
+ "version": "1.0.31",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "workspaces": [
7
7
  "client"
@@ -1,2 +0,0 @@
1
- export declare const ConditionBuilderStyles: import("@microsoft/fast-element").ElementStyles;
2
- //# sourceMappingURL=rule-condition-builder.styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-condition-builder.styles.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,iDAmDlC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const RuleDialogStyles: import("@microsoft/fast-element").ElementStyles;
2
- //# sourceMappingURL=rule-dialog.styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rule-dialog.styles.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.styles.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,gBAAgB,iDAqE5B,CAAC"}
@@ -1,32 +0,0 @@
1
- import { FASTElement } from '@microsoft/fast-element';
2
- import { Field, SystemService } from '../../../../../../services/system.service';
3
- import { ConditionBuilderEntity, ParameterBuilderEntity } from '../template-dialog.types';
4
- export declare class ConditionBuilder extends FASTElement {
5
- systemService: SystemService;
6
- condition: ConditionBuilderEntity;
7
- resource: string;
8
- parameters: Array<ParameterBuilderEntity>;
9
- leftValueItems: Array<Field>;
10
- leftValue: any;
11
- logicalOperator: string;
12
- rightCriteria: string;
13
- rightValueText: string;
14
- rightValueUserEntry: string;
15
- rightValueItems: Array<any>;
16
- rightValueItemsProperty: any;
17
- connectedCallback(): Promise<void>;
18
- disconnectedCallback(): void;
19
- createRightValueItems(): void;
20
- resourceChanged(): Promise<void>;
21
- parametersChanged(): void;
22
- conditionChanged(): Promise<void>;
23
- assignLeftValue(): void;
24
- assignRightValue(): void;
25
- leftValueChanged(): void;
26
- logicalOperatorChanged(): void;
27
- rightCriteriaChanged(): void;
28
- rightValueTextChanged(): void;
29
- rightValueUserEntryChanged(): void;
30
- deleteCondition(): void;
31
- }
32
- //# sourceMappingURL=condition-builder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-builder.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyC,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAM1F,qBAKa,gBAAiB,SAAQ,WAAW;IAChC,aAAa,EAAE,aAAa,CAAC;IAEtC,SAAS,EAAE,sBAAsB,CAAC;IAElC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEpC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAClC,SAAS,EAAE,GAAG,CAAC;IAEf,eAAe,EAAE,MAAM,CAAC;IAExB,aAAa,EAAE,MAAM,CAAwB;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,CAAM;IAEjC,uBAAuB,EAAE,GAAG,CAAM;IAExC,iBAAiB;IAoBvB,oBAAoB;IAIpB,qBAAqB;IAYf,eAAe;IAMrB,iBAAiB;IAOX,gBAAgB;IAYtB,eAAe;IAWf,gBAAgB;IAShB,gBAAgB;IAOhB,sBAAsB;IAOtB,oBAAoB;IAepB,qBAAqB;IAOrB,0BAA0B;IAO1B,eAAe;CAGhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"condition-builder.styles.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/foundation-notification-dashboard/components/templates/template-dialog/condition-builder/condition-builder.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,iDA+ClC,CAAC"}