@genesislcap/pbc-notify-ui 14.493.0 → 14.494.0

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.
@@ -399,27 +399,6 @@
399
399
  }
400
400
  ]
401
401
  },
402
- {
403
- "kind": "javascript-module",
404
- "path": "src/styles/scrollbar.styles.ts",
405
- "declarations": [
406
- {
407
- "kind": "variable",
408
- "name": "scrollbarStyles",
409
- "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
410
- }
411
- ],
412
- "exports": [
413
- {
414
- "kind": "js",
415
- "name": "scrollbarStyles",
416
- "declaration": {
417
- "name": "scrollbarStyles",
418
- "module": "src/styles/scrollbar.styles.ts"
419
- }
420
- }
421
- ]
422
- },
423
402
  {
424
403
  "kind": "javascript-module",
425
404
  "path": "src/utils/eventDetail.ts",
@@ -741,6 +720,27 @@
741
720
  }
742
721
  ]
743
722
  },
723
+ {
724
+ "kind": "javascript-module",
725
+ "path": "src/styles/scrollbar.styles.ts",
726
+ "declarations": [
727
+ {
728
+ "kind": "variable",
729
+ "name": "scrollbarStyles",
730
+ "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
731
+ }
732
+ ],
733
+ "exports": [
734
+ {
735
+ "kind": "js",
736
+ "name": "scrollbarStyles",
737
+ "declaration": {
738
+ "name": "scrollbarStyles",
739
+ "module": "src/styles/scrollbar.styles.ts"
740
+ }
741
+ }
742
+ ]
743
+ },
744
744
  {
745
745
  "kind": "javascript-module",
746
746
  "path": "src/components/foundation-inbox/inbox.styles.ts",
@@ -3791,6 +3791,149 @@
3791
3791
  }
3792
3792
  ]
3793
3793
  },
3794
+ {
3795
+ "kind": "javascript-module",
3796
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
3797
+ "declarations": [
3798
+ {
3799
+ "kind": "variable",
3800
+ "name": "noItemsClass",
3801
+ "type": {
3802
+ "text": "string"
3803
+ },
3804
+ "default": "'no-items'",
3805
+ "description": "Class to use when there are no items"
3806
+ },
3807
+ {
3808
+ "kind": "variable",
3809
+ "name": "FoundationInboxCounterStyles",
3810
+ "default": "css`\n :host {\n display: inline-block;\n min-width: 16px;\n height: 16px;\n border-radius: 9px;\n text-align: center;\n color: #fff;\n line-height: 16px;\n font-size: 9px;\n font-weight: 700;\n background: ${BACKGROUND_COLOR};\n pointer-events: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n :host(.${noItemsClass}) {\n display: none;\n }\n`"
3811
+ }
3812
+ ],
3813
+ "exports": [
3814
+ {
3815
+ "kind": "js",
3816
+ "name": "noItemsClass",
3817
+ "declaration": {
3818
+ "name": "noItemsClass",
3819
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
3820
+ }
3821
+ },
3822
+ {
3823
+ "kind": "js",
3824
+ "name": "FoundationInboxCounterStyles",
3825
+ "declaration": {
3826
+ "name": "FoundationInboxCounterStyles",
3827
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
3828
+ }
3829
+ }
3830
+ ]
3831
+ },
3832
+ {
3833
+ "kind": "javascript-module",
3834
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts",
3835
+ "declarations": [
3836
+ {
3837
+ "kind": "variable",
3838
+ "name": "FoundationInboxCounterTemplate",
3839
+ "default": "html<FoundationInboxCounter>`\n <template class=\"${(x) => classNames([noItemsClass, x.value < 1])}\">\n ${when(\n (x) => x.value > 0,\n html`\n ${(x) => (x.value > MAX_NUMBER_TO_DISPLAY ? `${MAX_NUMBER_TO_DISPLAY}+` : x.value)}\n `,\n )}\n </template>\n`"
3840
+ }
3841
+ ],
3842
+ "exports": [
3843
+ {
3844
+ "kind": "js",
3845
+ "name": "FoundationInboxCounterTemplate",
3846
+ "declaration": {
3847
+ "name": "FoundationInboxCounterTemplate",
3848
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts"
3849
+ }
3850
+ }
3851
+ ]
3852
+ },
3853
+ {
3854
+ "kind": "javascript-module",
3855
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts",
3856
+ "declarations": [
3857
+ {
3858
+ "kind": "class",
3859
+ "description": "",
3860
+ "name": "FoundationInboxCounter",
3861
+ "members": [
3862
+ {
3863
+ "kind": "field",
3864
+ "name": "value",
3865
+ "type": {
3866
+ "text": "number"
3867
+ },
3868
+ "default": "0"
3869
+ },
3870
+ {
3871
+ "kind": "field",
3872
+ "name": "connect",
3873
+ "type": {
3874
+ "text": "Connect"
3875
+ }
3876
+ },
3877
+ {
3878
+ "kind": "field",
3879
+ "name": "inboxService",
3880
+ "type": {
3881
+ "text": "FoundationInboxService"
3882
+ }
3883
+ },
3884
+ {
3885
+ "kind": "field",
3886
+ "name": "connectionSub",
3887
+ "type": {
3888
+ "text": "Subscription"
3889
+ },
3890
+ "privacy": "private"
3891
+ },
3892
+ {
3893
+ "kind": "method",
3894
+ "name": "subscribeToAlerts",
3895
+ "privacy": "private",
3896
+ "return": {
3897
+ "type": {
3898
+ "text": "Promise<void>"
3899
+ }
3900
+ },
3901
+ "description": "Subscribes to alerts from the inbox service"
3902
+ },
3903
+ {
3904
+ "kind": "field",
3905
+ "name": "subscriptionHandler",
3906
+ "privacy": "private",
3907
+ "description": "Handles subscription updates from the inbox service"
3908
+ }
3909
+ ],
3910
+ "superclass": {
3911
+ "name": "GenesisElement",
3912
+ "package": "@genesislcap/web-core"
3913
+ },
3914
+ "tagName": "foundation-inbox-counter",
3915
+ "customElement": true
3916
+ }
3917
+ ],
3918
+ "exports": [
3919
+ {
3920
+ "kind": "js",
3921
+ "name": "FoundationInboxCounter",
3922
+ "declaration": {
3923
+ "name": "FoundationInboxCounter",
3924
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
3925
+ }
3926
+ },
3927
+ {
3928
+ "kind": "custom-element-definition",
3929
+ "name": "foundation-inbox-counter",
3930
+ "declaration": {
3931
+ "name": "FoundationInboxCounter",
3932
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
3933
+ }
3934
+ }
3935
+ ]
3936
+ },
3794
3937
  {
3795
3938
  "kind": "javascript-module",
3796
3939
  "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts",
@@ -5014,220 +5157,77 @@
5014
5157
  },
5015
5158
  {
5016
5159
  "kind": "javascript-module",
5017
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
5160
+ "path": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts",
5018
5161
  "declarations": [
5019
5162
  {
5020
- "kind": "variable",
5021
- "name": "noItemsClass",
5022
- "type": {
5023
- "text": "string"
5163
+ "kind": "class",
5164
+ "description": "",
5165
+ "name": "NotifyAuditManagement",
5166
+ "superclass": {
5167
+ "name": "GenesisElement",
5168
+ "package": "@genesislcap/web-core"
5024
5169
  },
5025
- "default": "'no-items'",
5026
- "description": "Class to use when there are no items"
5027
- },
5028
- {
5029
- "kind": "variable",
5030
- "name": "FoundationInboxCounterStyles",
5031
- "default": "css`\n :host {\n display: inline-block;\n min-width: 16px;\n height: 16px;\n border-radius: 9px;\n text-align: center;\n color: #fff;\n line-height: 16px;\n font-size: 9px;\n font-weight: 700;\n background: ${BACKGROUND_COLOR};\n pointer-events: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n :host(.${noItemsClass}) {\n display: none;\n }\n`"
5170
+ "tagName": "notify-audit-management",
5171
+ "customElement": true
5032
5172
  }
5033
5173
  ],
5034
5174
  "exports": [
5035
5175
  {
5036
5176
  "kind": "js",
5037
- "name": "noItemsClass",
5177
+ "name": "NotifyAuditManagement",
5038
5178
  "declaration": {
5039
- "name": "noItemsClass",
5040
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
5179
+ "name": "NotifyAuditManagement",
5180
+ "module": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts"
5041
5181
  }
5042
5182
  },
5043
5183
  {
5044
- "kind": "js",
5045
- "name": "FoundationInboxCounterStyles",
5184
+ "kind": "custom-element-definition",
5185
+ "name": "notify-audit-management",
5046
5186
  "declaration": {
5047
- "name": "FoundationInboxCounterStyles",
5048
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
5187
+ "name": "NotifyAuditManagement",
5188
+ "module": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts"
5049
5189
  }
5050
5190
  }
5051
5191
  ]
5052
5192
  },
5053
5193
  {
5054
5194
  "kind": "javascript-module",
5055
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts",
5195
+ "path": "src/components/foundation-notification-dashboard/components/routes/route-management.ts",
5056
5196
  "declarations": [
5057
5197
  {
5058
- "kind": "variable",
5059
- "name": "FoundationInboxCounterTemplate",
5060
- "default": "html<FoundationInboxCounter>`\n <template class=\"${(x) => classNames([noItemsClass, x.value < 1])}\">\n ${when(\n (x) => x.value > 0,\n html`\n ${(x) => (x.value > MAX_NUMBER_TO_DISPLAY ? `${MAX_NUMBER_TO_DISPLAY}+` : x.value)}\n `,\n )}\n </template>\n`"
5198
+ "kind": "class",
5199
+ "description": "",
5200
+ "name": "RouteManagement",
5201
+ "superclass": {
5202
+ "name": "GenesisElement",
5203
+ "package": "@genesislcap/web-core"
5204
+ },
5205
+ "tagName": "route-management",
5206
+ "customElement": true
5061
5207
  }
5062
5208
  ],
5063
5209
  "exports": [
5064
5210
  {
5065
5211
  "kind": "js",
5066
- "name": "FoundationInboxCounterTemplate",
5212
+ "name": "RouteManagement",
5067
5213
  "declaration": {
5068
- "name": "FoundationInboxCounterTemplate",
5069
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts"
5214
+ "name": "RouteManagement",
5215
+ "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
5216
+ }
5217
+ },
5218
+ {
5219
+ "kind": "custom-element-definition",
5220
+ "name": "route-management",
5221
+ "declaration": {
5222
+ "name": "RouteManagement",
5223
+ "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
5070
5224
  }
5071
5225
  }
5072
5226
  ]
5073
5227
  },
5074
5228
  {
5075
5229
  "kind": "javascript-module",
5076
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts",
5077
- "declarations": [
5078
- {
5079
- "kind": "class",
5080
- "description": "",
5081
- "name": "FoundationInboxCounter",
5082
- "members": [
5083
- {
5084
- "kind": "field",
5085
- "name": "value",
5086
- "type": {
5087
- "text": "number"
5088
- },
5089
- "default": "0"
5090
- },
5091
- {
5092
- "kind": "field",
5093
- "name": "connect",
5094
- "type": {
5095
- "text": "Connect"
5096
- }
5097
- },
5098
- {
5099
- "kind": "field",
5100
- "name": "inboxService",
5101
- "type": {
5102
- "text": "FoundationInboxService"
5103
- }
5104
- },
5105
- {
5106
- "kind": "field",
5107
- "name": "connectionSub",
5108
- "type": {
5109
- "text": "Subscription"
5110
- },
5111
- "privacy": "private"
5112
- },
5113
- {
5114
- "kind": "method",
5115
- "name": "subscribeToAlerts",
5116
- "privacy": "private",
5117
- "return": {
5118
- "type": {
5119
- "text": "Promise<void>"
5120
- }
5121
- },
5122
- "description": "Subscribes to alerts from the inbox service"
5123
- },
5124
- {
5125
- "kind": "field",
5126
- "name": "subscriptionHandler",
5127
- "privacy": "private",
5128
- "description": "Handles subscription updates from the inbox service"
5129
- }
5130
- ],
5131
- "superclass": {
5132
- "name": "GenesisElement",
5133
- "package": "@genesislcap/web-core"
5134
- },
5135
- "tagName": "foundation-inbox-counter",
5136
- "customElement": true
5137
- }
5138
- ],
5139
- "exports": [
5140
- {
5141
- "kind": "js",
5142
- "name": "FoundationInboxCounter",
5143
- "declaration": {
5144
- "name": "FoundationInboxCounter",
5145
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
5146
- }
5147
- },
5148
- {
5149
- "kind": "custom-element-definition",
5150
- "name": "foundation-inbox-counter",
5151
- "declaration": {
5152
- "name": "FoundationInboxCounter",
5153
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
5154
- }
5155
- }
5156
- ]
5157
- },
5158
- {
5159
- "kind": "javascript-module",
5160
- "path": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts",
5161
- "declarations": [
5162
- {
5163
- "kind": "class",
5164
- "description": "",
5165
- "name": "NotifyAuditManagement",
5166
- "superclass": {
5167
- "name": "GenesisElement",
5168
- "package": "@genesislcap/web-core"
5169
- },
5170
- "tagName": "notify-audit-management",
5171
- "customElement": true
5172
- }
5173
- ],
5174
- "exports": [
5175
- {
5176
- "kind": "js",
5177
- "name": "NotifyAuditManagement",
5178
- "declaration": {
5179
- "name": "NotifyAuditManagement",
5180
- "module": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts"
5181
- }
5182
- },
5183
- {
5184
- "kind": "custom-element-definition",
5185
- "name": "notify-audit-management",
5186
- "declaration": {
5187
- "name": "NotifyAuditManagement",
5188
- "module": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts"
5189
- }
5190
- }
5191
- ]
5192
- },
5193
- {
5194
- "kind": "javascript-module",
5195
- "path": "src/components/foundation-notification-dashboard/components/routes/route-management.ts",
5196
- "declarations": [
5197
- {
5198
- "kind": "class",
5199
- "description": "",
5200
- "name": "RouteManagement",
5201
- "superclass": {
5202
- "name": "GenesisElement",
5203
- "package": "@genesislcap/web-core"
5204
- },
5205
- "tagName": "route-management",
5206
- "customElement": true
5207
- }
5208
- ],
5209
- "exports": [
5210
- {
5211
- "kind": "js",
5212
- "name": "RouteManagement",
5213
- "declaration": {
5214
- "name": "RouteManagement",
5215
- "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
5216
- }
5217
- },
5218
- {
5219
- "kind": "custom-element-definition",
5220
- "name": "route-management",
5221
- "declaration": {
5222
- "name": "RouteManagement",
5223
- "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
5224
- }
5225
- }
5226
- ]
5227
- },
5228
- {
5229
- "kind": "javascript-module",
5230
- "path": "src/components/foundation-notification-dashboard/components/rules/columns.ts",
5230
+ "path": "src/components/foundation-notification-dashboard/components/rules/columns.ts",
5231
5231
  "declarations": [
5232
5232
  {
5233
5233
  "kind": "function",
@@ -6562,39 +6562,39 @@
6562
6562
  },
6563
6563
  {
6564
6564
  "kind": "javascript-module",
6565
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
6565
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
6566
6566
  "declarations": [
6567
6567
  {
6568
6568
  "kind": "variable",
6569
- "name": "RuleConditionBuilderTemplate",
6570
- "default": "html<RuleConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n title=${(x) => (x.leftValue ? JSON.parse(x.leftValue).FIELD_NAME : '')}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.getAllFields(),\n html`\n <rapid-option value=${(x) => JSON.stringify(x)} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n title=${(x) => x.logicalOperator}\n >\n ${repeat(\n (x) => x.getLogicalOperators(),\n html`\n <rapid-option value=${(x) => x.operator} title=${(x) => x}>\n ${(x) => x.label}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select\n class=\"right-criteria\"\n :value=${sync((x) => x.rightCriteria)}\n title=${(x) => x.rightCriteria}\n >\n ${repeat(\n (x) => x.getRightCriteria(),\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATE,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"date\"\n ></rapid-text-field>\n `,\n html`\n ${whenElse(\n (x) =>\n JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATETIME,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"datetime-local\"\n ></rapid-text-field>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.FIELD,\n html`\n <rapid-select\n class=\"right-criteria-select\"\n :value=${sync((x) => x.rightValueSelect)}\n title=${(x) => x.rightValueSelect}\n >\n ${repeat(\n (x) => x.getApplicableFields(),\n html`\n <rapid-option value=${(x) => x.FIELD_NAME} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
6569
+ "name": "RuleConditionGroupTemplate",
6570
+ "default": "html<RuleConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, RuleConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <rule-condition-group\n :fields=${(x, c) => c.parent.fields}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <rule-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
6571
6571
  }
6572
6572
  ],
6573
6573
  "exports": [
6574
6574
  {
6575
6575
  "kind": "js",
6576
- "name": "RuleConditionBuilderTemplate",
6576
+ "name": "RuleConditionGroupTemplate",
6577
6577
  "declaration": {
6578
- "name": "RuleConditionBuilderTemplate",
6579
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
6578
+ "name": "RuleConditionGroupTemplate",
6579
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
6580
6580
  }
6581
6581
  }
6582
6582
  ]
6583
6583
  },
6584
6584
  {
6585
6585
  "kind": "javascript-module",
6586
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
6586
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
6587
6587
  "declarations": [
6588
6588
  {
6589
6589
  "kind": "class",
6590
- "description": "Condition builder for notification rule criteria.",
6591
- "name": "RuleConditionBuilder",
6590
+ "description": "Parenthesized group of conditions/nested groups for notification rule\ncriteria, joined to the previous sibling via AND/OR like a single\ncondition row - but bracketing its own children off from the rest of the\nlist, so e.g. \"(A && B) || C\" can be expressed without the AND silently\nspanning more than intended.",
6591
+ "name": "RuleConditionGroup",
6592
6592
  "members": [
6593
6593
  {
6594
6594
  "kind": "field",
6595
- "name": "condition",
6595
+ "name": "node",
6596
6596
  "type": {
6597
- "text": "ConditionBuilderEntity"
6597
+ "text": "ConditionGroupEntity"
6598
6598
  }
6599
6599
  },
6600
6600
  {
@@ -6622,66 +6622,15 @@
6622
6622
  },
6623
6623
  {
6624
6624
  "kind": "field",
6625
- "name": "leftValue",
6626
- "type": {
6627
- "text": "string"
6628
- },
6629
- "default": "null"
6630
- },
6631
- {
6632
- "kind": "field",
6633
- "name": "leftValueItems",
6634
- "type": {
6635
- "text": "Array<any>"
6636
- },
6637
- "default": "[]"
6638
- },
6639
- {
6640
- "kind": "field",
6641
- "name": "logicalOperator",
6642
- "type": {
6643
- "text": "string"
6644
- },
6645
- "default": "null"
6646
- },
6647
- {
6648
- "kind": "field",
6649
- "name": "rightCriteria",
6650
- "type": {
6651
- "text": "string"
6652
- }
6653
- },
6654
- {
6655
- "kind": "field",
6656
- "name": "rightValueText",
6657
- "type": {
6658
- "text": "string"
6659
- },
6660
- "default": "null"
6661
- },
6662
- {
6663
- "kind": "field",
6664
- "name": "rightValueSelect",
6665
- "type": {
6666
- "text": "string"
6667
- },
6668
- "default": "null"
6669
- },
6670
- {
6671
- "kind": "field",
6672
- "name": "rightValueMultiSelect",
6625
+ "name": "groupChildren",
6673
6626
  "type": {
6674
- "text": "string[]"
6627
+ "text": "ConditionNode[]"
6675
6628
  },
6676
6629
  "default": "[]"
6677
6630
  },
6678
6631
  {
6679
6632
  "kind": "method",
6680
- "name": "deleteCondition"
6681
- },
6682
- {
6683
- "kind": "method",
6684
- "name": "conditionChanged"
6633
+ "name": "nodeChanged"
6685
6634
  },
6686
6635
  {
6687
6636
  "kind": "method",
@@ -6689,29 +6638,230 @@
6689
6638
  },
6690
6639
  {
6691
6640
  "kind": "method",
6692
- "name": "fieldsChanged"
6641
+ "name": "newCondition"
6693
6642
  },
6694
6643
  {
6695
6644
  "kind": "method",
6696
- "name": "assignLeftValue",
6697
- "privacy": "private"
6645
+ "name": "newGroup"
6698
6646
  },
6699
6647
  {
6700
6648
  "kind": "method",
6701
- "name": "assignRightValue"
6649
+ "name": "editChild",
6650
+ "parameters": [
6651
+ {
6652
+ "name": "_editedChild",
6653
+ "type": {
6654
+ "text": "ConditionNode"
6655
+ }
6656
+ }
6657
+ ]
6702
6658
  },
6703
6659
  {
6704
6660
  "kind": "method",
6705
- "name": "getRightCriteria",
6706
- "return": {
6707
- "type": {
6708
- "text": "Array<any>"
6661
+ "name": "deleteChild",
6662
+ "parameters": [
6663
+ {
6664
+ "name": "deletedChild",
6665
+ "type": {
6666
+ "text": "ConditionNode"
6667
+ }
6709
6668
  }
6710
- }
6669
+ ]
6711
6670
  },
6712
6671
  {
6713
6672
  "kind": "method",
6714
- "name": "getLogicalOperators",
6673
+ "name": "deleteSelf"
6674
+ }
6675
+ ],
6676
+ "events": [
6677
+ {
6678
+ "description": "Fired when this whole group should be removed",
6679
+ "name": "delete"
6680
+ },
6681
+ {
6682
+ "description": "Fired when anything inside this group changes",
6683
+ "name": "edit"
6684
+ }
6685
+ ],
6686
+ "superclass": {
6687
+ "name": "GenesisElement",
6688
+ "package": "@genesislcap/web-core"
6689
+ },
6690
+ "tagName": "rule-condition-group",
6691
+ "customElement": true
6692
+ }
6693
+ ],
6694
+ "exports": [
6695
+ {
6696
+ "kind": "js",
6697
+ "name": "RuleConditionGroup",
6698
+ "declaration": {
6699
+ "name": "RuleConditionGroup",
6700
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
6701
+ }
6702
+ },
6703
+ {
6704
+ "kind": "custom-element-definition",
6705
+ "name": "rule-condition-group",
6706
+ "declaration": {
6707
+ "name": "RuleConditionGroup",
6708
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
6709
+ }
6710
+ }
6711
+ ]
6712
+ },
6713
+ {
6714
+ "kind": "javascript-module",
6715
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
6716
+ "declarations": [
6717
+ {
6718
+ "kind": "variable",
6719
+ "name": "RuleConditionBuilderTemplate",
6720
+ "default": "html<RuleConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n title=${(x) => (x.leftValue ? JSON.parse(x.leftValue).FIELD_NAME : '')}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.getAllFields(),\n html`\n <rapid-option value=${(x) => JSON.stringify(x)} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n title=${(x) => x.logicalOperator}\n >\n ${repeat(\n (x) => x.getLogicalOperators(),\n html`\n <rapid-option value=${(x) => x.operator} title=${(x) => x}>\n ${(x) => x.label}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select\n class=\"right-criteria\"\n :value=${sync((x) => x.rightCriteria)}\n title=${(x) => x.rightCriteria}\n >\n ${repeat(\n (x) => x.getRightCriteria(),\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATE,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"date\"\n ></rapid-text-field>\n `,\n html`\n ${whenElse(\n (x) =>\n JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATETIME,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"datetime-local\"\n ></rapid-text-field>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.FIELD,\n html`\n <rapid-select\n class=\"right-criteria-select\"\n :value=${sync((x) => x.rightValueSelect)}\n title=${(x) => x.rightValueSelect}\n >\n ${repeat(\n (x) => x.getApplicableFields(),\n html`\n <rapid-option value=${(x) => x.FIELD_NAME} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
6721
+ }
6722
+ ],
6723
+ "exports": [
6724
+ {
6725
+ "kind": "js",
6726
+ "name": "RuleConditionBuilderTemplate",
6727
+ "declaration": {
6728
+ "name": "RuleConditionBuilderTemplate",
6729
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
6730
+ }
6731
+ }
6732
+ ]
6733
+ },
6734
+ {
6735
+ "kind": "javascript-module",
6736
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
6737
+ "declarations": [
6738
+ {
6739
+ "kind": "class",
6740
+ "description": "Condition builder for notification rule criteria.",
6741
+ "name": "RuleConditionBuilder",
6742
+ "members": [
6743
+ {
6744
+ "kind": "field",
6745
+ "name": "condition",
6746
+ "type": {
6747
+ "text": "ConditionBuilderEntity"
6748
+ }
6749
+ },
6750
+ {
6751
+ "kind": "field",
6752
+ "name": "fields",
6753
+ "type": {
6754
+ "text": "Field[]"
6755
+ },
6756
+ "default": "[]"
6757
+ },
6758
+ {
6759
+ "kind": "field",
6760
+ "name": "isFirst",
6761
+ "type": {
6762
+ "text": "boolean"
6763
+ },
6764
+ "default": "false"
6765
+ },
6766
+ {
6767
+ "kind": "field",
6768
+ "name": "joinOperator",
6769
+ "type": {
6770
+ "text": "string"
6771
+ }
6772
+ },
6773
+ {
6774
+ "kind": "field",
6775
+ "name": "leftValue",
6776
+ "type": {
6777
+ "text": "string"
6778
+ },
6779
+ "default": "null"
6780
+ },
6781
+ {
6782
+ "kind": "field",
6783
+ "name": "leftValueItems",
6784
+ "type": {
6785
+ "text": "Array<any>"
6786
+ },
6787
+ "default": "[]"
6788
+ },
6789
+ {
6790
+ "kind": "field",
6791
+ "name": "logicalOperator",
6792
+ "type": {
6793
+ "text": "string"
6794
+ },
6795
+ "default": "null"
6796
+ },
6797
+ {
6798
+ "kind": "field",
6799
+ "name": "rightCriteria",
6800
+ "type": {
6801
+ "text": "string"
6802
+ }
6803
+ },
6804
+ {
6805
+ "kind": "field",
6806
+ "name": "rightValueText",
6807
+ "type": {
6808
+ "text": "string"
6809
+ },
6810
+ "default": "null"
6811
+ },
6812
+ {
6813
+ "kind": "field",
6814
+ "name": "rightValueSelect",
6815
+ "type": {
6816
+ "text": "string"
6817
+ },
6818
+ "default": "null"
6819
+ },
6820
+ {
6821
+ "kind": "field",
6822
+ "name": "rightValueMultiSelect",
6823
+ "type": {
6824
+ "text": "string[]"
6825
+ },
6826
+ "default": "[]"
6827
+ },
6828
+ {
6829
+ "kind": "method",
6830
+ "name": "deleteCondition"
6831
+ },
6832
+ {
6833
+ "kind": "method",
6834
+ "name": "conditionChanged"
6835
+ },
6836
+ {
6837
+ "kind": "method",
6838
+ "name": "joinOperatorChanged"
6839
+ },
6840
+ {
6841
+ "kind": "method",
6842
+ "name": "fieldsChanged"
6843
+ },
6844
+ {
6845
+ "kind": "method",
6846
+ "name": "assignLeftValue",
6847
+ "privacy": "private"
6848
+ },
6849
+ {
6850
+ "kind": "method",
6851
+ "name": "assignRightValue"
6852
+ },
6853
+ {
6854
+ "kind": "method",
6855
+ "name": "getRightCriteria",
6856
+ "return": {
6857
+ "type": {
6858
+ "text": "Array<any>"
6859
+ }
6860
+ }
6861
+ },
6862
+ {
6863
+ "kind": "method",
6864
+ "name": "getLogicalOperators",
6715
6865
  "return": {
6716
6866
  "type": {
6717
6867
  "text": "Array<any>"
@@ -6846,442 +6996,214 @@
6846
6996
  },
6847
6997
  {
6848
6998
  "kind": "javascript-module",
6849
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
6999
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
6850
7000
  "declarations": [
6851
7001
  {
6852
7002
  "kind": "variable",
6853
- "name": "RuleConditionGroupTemplate",
6854
- "default": "html<RuleConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, RuleConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <rule-condition-group\n :fields=${(x, c) => c.parent.fields}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <rule-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
7003
+ "name": "ParameterBuilderStyles",
7004
+ "default": "css`\n .parameter-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.param-type::part(control) {\n width: 115px;\n }\n\n rapid-select.param-source-type::part(control) {\n width: 160px;\n }\n\n rapid-select.param-source::part(control) {\n width: ${PARAM_SOURCE_WIDTH}px;\n }\n\n rapid-text-field.param-source::part(root) {\n width: calc(${PARAM_SOURCE_WIDTH}px + 2px);\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
6855
7005
  }
6856
7006
  ],
6857
7007
  "exports": [
6858
7008
  {
6859
7009
  "kind": "js",
6860
- "name": "RuleConditionGroupTemplate",
7010
+ "name": "ParameterBuilderStyles",
6861
7011
  "declaration": {
6862
- "name": "RuleConditionGroupTemplate",
6863
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
7012
+ "name": "ParameterBuilderStyles",
7013
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
6864
7014
  }
6865
7015
  }
6866
7016
  ]
6867
7017
  },
6868
7018
  {
6869
7019
  "kind": "javascript-module",
6870
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
7020
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
7021
+ "declarations": [
7022
+ {
7023
+ "kind": "variable",
7024
+ "name": "ParameterBuilderTemplate",
7025
+ "default": "html<ParameterBuilder>`\n <div class=\"parameter-builder\">\n <rapid-text-field\n id=\"param-name\"\n placeholder=\"Name\"\n :value=${sync((x) => x.name)}\n ></rapid-text-field>\n\n <rapid-text-field\n id=\"param-label\"\n placeholder=\"Label\"\n :value=${sync((x) => x.label)}\n ></rapid-text-field>\n\n <rapid-select\n id=\"param-source-type\"\n :value=${sync((x) => x.sourceType)}\n class=\"param-source-type\"\n >\n ${repeat(\n (x) => ALL_PARAM_SOURCE_TYPES,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_USER_TEXT,\n html<ParameterBuilder>`\n <rapid-text-field class=\"param-source\" disabled></rapid-text-field>\n `,\n )}\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_REQ_REP,\n html<ParameterBuilder>`\n <rapid-select\n ${ref('sourceSelect')}\n id=\"param-source\"\n :value=${sync((x) => x.sourceSelected)}\n class=\"param-source\"\n ?disabled=${(x) => x.sourceType !== PARAM_SOURCE_TYPE_REQ_REP}\n >\n ${repeat(\n (x) => x.reqRepItems,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_DEFINED_GROUP,\n html<ParameterBuilder>`\n <rapid-text-field\n ${ref('sourceTextField')}\n class=\"param-source\"\n placeholder=\"item1,item2,item3\"\n :value=${sync((x) => x.sourceTyped)}\n ></rapid-text-field>\n `,\n )}\n\n <rapid-select id=\"param-type\" :value=${sync((x) => x.type)} class=\"param-type\">\n ${repeat(\n (x) => ALL_PARAM_TYPES,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteParameter()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
7026
+ }
7027
+ ],
7028
+ "exports": [
7029
+ {
7030
+ "kind": "js",
7031
+ "name": "ParameterBuilderTemplate",
7032
+ "declaration": {
7033
+ "name": "ParameterBuilderTemplate",
7034
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
7035
+ }
7036
+ }
7037
+ ]
7038
+ },
7039
+ {
7040
+ "kind": "javascript-module",
7041
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
6871
7042
  "declarations": [
6872
7043
  {
6873
7044
  "kind": "class",
6874
- "description": "Parenthesized group of conditions/nested groups for notification rule\ncriteria, joined to the previous sibling via AND/OR like a single\ncondition row - but bracketing its own children off from the rest of the\nlist, so e.g. \"(A && B) || C\" can be expressed without the AND silently\nspanning more than intended.",
6875
- "name": "RuleConditionGroup",
7045
+ "description": "Parameter builder for notification templates.",
7046
+ "name": "ParameterBuilder",
6876
7047
  "members": [
6877
7048
  {
6878
7049
  "kind": "field",
6879
- "name": "node",
7050
+ "name": "parameter",
6880
7051
  "type": {
6881
- "text": "ConditionGroupEntity"
7052
+ "text": "ParameterBuilderEntity"
6882
7053
  }
6883
7054
  },
6884
7055
  {
6885
7056
  "kind": "field",
6886
- "name": "fields",
7057
+ "name": "name",
6887
7058
  "type": {
6888
- "text": "Field[]"
6889
- },
6890
- "default": "[]"
7059
+ "text": "string"
7060
+ }
6891
7061
  },
6892
7062
  {
6893
7063
  "kind": "field",
6894
- "name": "isFirst",
7064
+ "name": "label",
6895
7065
  "type": {
6896
- "text": "boolean"
6897
- },
6898
- "default": "false"
7066
+ "text": "string"
7067
+ }
6899
7068
  },
6900
7069
  {
6901
7070
  "kind": "field",
6902
- "name": "joinOperator",
7071
+ "name": "type",
6903
7072
  "type": {
6904
7073
  "text": "string"
6905
7074
  }
6906
7075
  },
6907
7076
  {
6908
7077
  "kind": "field",
6909
- "name": "groupChildren",
6910
- "type": {
6911
- "text": "ConditionNode[]"
6912
- },
6913
- "default": "[]"
6914
- },
6915
- {
6916
- "kind": "method",
6917
- "name": "nodeChanged"
6918
- },
6919
- {
6920
- "kind": "method",
6921
- "name": "joinOperatorChanged"
6922
- },
6923
- {
6924
- "kind": "method",
6925
- "name": "newCondition"
6926
- },
6927
- {
6928
- "kind": "method",
6929
- "name": "newGroup"
6930
- },
6931
- {
6932
- "kind": "method",
6933
- "name": "editChild",
6934
- "parameters": [
6935
- {
6936
- "name": "_editedChild",
6937
- "type": {
6938
- "text": "ConditionNode"
6939
- }
6940
- }
6941
- ]
6942
- },
6943
- {
6944
- "kind": "method",
6945
- "name": "deleteChild",
6946
- "parameters": [
6947
- {
6948
- "name": "deletedChild",
6949
- "type": {
6950
- "text": "ConditionNode"
6951
- }
6952
- }
6953
- ]
6954
- },
6955
- {
6956
- "kind": "method",
6957
- "name": "deleteSelf"
6958
- }
6959
- ],
6960
- "events": [
6961
- {
6962
- "description": "Fired when this whole group should be removed",
6963
- "name": "delete"
6964
- },
6965
- {
6966
- "description": "Fired when anything inside this group changes",
6967
- "name": "edit"
6968
- }
6969
- ],
6970
- "superclass": {
6971
- "name": "GenesisElement",
6972
- "package": "@genesislcap/web-core"
6973
- },
6974
- "tagName": "rule-condition-group",
6975
- "customElement": true
6976
- }
6977
- ],
6978
- "exports": [
6979
- {
6980
- "kind": "js",
6981
- "name": "RuleConditionGroup",
6982
- "declaration": {
6983
- "name": "RuleConditionGroup",
6984
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
6985
- }
6986
- },
6987
- {
6988
- "kind": "custom-element-definition",
6989
- "name": "rule-condition-group",
6990
- "declaration": {
6991
- "name": "RuleConditionGroup",
6992
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
6993
- }
6994
- }
6995
- ]
6996
- },
6997
- {
6998
- "kind": "javascript-module",
6999
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
7000
- "declarations": [
7001
- {
7002
- "kind": "variable",
7003
- "name": "TemplateConditionBuilderTemplate",
7004
- "default": "html<TemplateConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.leftValueItems,\n html<Field>`\n <rapid-option value=${(x) => JSON.stringify(x)}>${(x) => x.FIELD_NAME}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n >\n ${repeat(\n (_) => Object.values(LogicalOperator),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select class=\"right-criteria\" :value=${sync((x) => x.rightCriteria)}>\n ${repeat(\n (_) => Object.values(RightCriteria),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html<TemplateConditionBuilder>`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.USER_ENTRY,\n html<TemplateConditionBuilder>`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueSelect)}>\n ${(x) => rightValueItemsOptions(x.rightValueItems)}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
7005
- }
7006
- ],
7007
- "exports": [
7008
- {
7009
- "kind": "js",
7010
- "name": "TemplateConditionBuilderTemplate",
7011
- "declaration": {
7012
- "name": "TemplateConditionBuilderTemplate",
7013
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts"
7014
- }
7015
- }
7016
- ]
7017
- },
7018
- {
7019
- "kind": "javascript-module",
7020
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts",
7021
- "declarations": [
7022
- {
7023
- "kind": "class",
7024
- "description": "Condition builder for template notification rules.",
7025
- "name": "TemplateConditionBuilder",
7026
- "members": [
7027
- {
7028
- "kind": "field",
7029
- "name": "condition",
7030
- "type": {
7031
- "text": "ConditionBuilderEntity"
7032
- }
7033
- },
7034
- {
7035
- "kind": "field",
7036
- "name": "parameters",
7037
- "type": {
7038
- "text": "Array<ParameterBuilderEntity>"
7039
- },
7040
- "default": "[]"
7041
- },
7042
- {
7043
- "kind": "field",
7044
- "name": "fields",
7045
- "type": {
7046
- "text": "Array<string>"
7047
- },
7048
- "default": "[]"
7049
- },
7050
- {
7051
- "kind": "field",
7052
- "name": "isFirst",
7053
- "type": {
7054
- "text": "boolean"
7055
- },
7056
- "default": "false"
7057
- },
7058
- {
7059
- "kind": "field",
7060
- "name": "joinOperator",
7078
+ "name": "sourceType",
7061
7079
  "type": {
7062
7080
  "text": "string"
7063
7081
  }
7064
7082
  },
7065
7083
  {
7066
7084
  "kind": "field",
7067
- "name": "leftValue",
7068
- "type": {
7069
- "text": "any"
7070
- },
7071
- "default": "null"
7072
- },
7073
- {
7074
- "kind": "field",
7075
- "name": "leftValueItems",
7076
- "type": {
7077
- "text": "Array<any>"
7078
- },
7079
- "default": "[]"
7080
- },
7081
- {
7082
- "kind": "field",
7083
- "name": "logicalOperator",
7084
- "type": {
7085
- "text": "string"
7086
- },
7087
- "default": "null"
7088
- },
7089
- {
7090
- "kind": "field",
7091
- "name": "rightCriteria",
7085
+ "name": "sourceSelected",
7092
7086
  "type": {
7093
7087
  "text": "string"
7094
7088
  }
7095
7089
  },
7096
7090
  {
7097
7091
  "kind": "field",
7098
- "name": "rightValueText",
7092
+ "name": "sourceTyped",
7099
7093
  "type": {
7100
7094
  "text": "string"
7101
- },
7102
- "default": "null"
7095
+ }
7103
7096
  },
7104
7097
  {
7105
7098
  "kind": "field",
7106
- "name": "rightValueSelect",
7099
+ "name": "sourceTextField",
7107
7100
  "type": {
7108
- "text": "string"
7109
- },
7110
- "default": "null"
7101
+ "text": "TextField"
7102
+ }
7111
7103
  },
7112
7104
  {
7113
7105
  "kind": "field",
7114
- "name": "rightValueItems",
7106
+ "name": "sourceSelect",
7115
7107
  "type": {
7116
- "text": "Array<any>"
7117
- },
7118
- "default": "[]"
7108
+ "text": "Select"
7109
+ }
7119
7110
  },
7120
7111
  {
7121
7112
  "kind": "field",
7122
- "name": "rightValueMultiSelect",
7113
+ "name": "reqRepItems",
7123
7114
  "type": {
7124
- "text": "string[]"
7115
+ "text": "array"
7125
7116
  },
7126
- "default": "[]"
7127
- },
7128
- {
7129
- "kind": "method",
7130
- "name": "deleteCondition"
7131
- },
7132
- {
7133
- "kind": "method",
7134
- "name": "conditionChanged"
7135
- },
7136
- {
7137
- "kind": "method",
7138
- "name": "joinOperatorChanged"
7139
- },
7140
- {
7141
- "kind": "method",
7142
- "name": "parametersChanged"
7143
- },
7144
- {
7145
- "kind": "method",
7146
- "name": "getMatchingParameter",
7147
- "privacy": "private",
7148
- "return": {
7149
- "type": {
7150
- "text": "ParameterBuilderEntity | undefined"
7151
- }
7152
- }
7153
- },
7154
- {
7155
- "kind": "method",
7156
- "name": "syncParameterBinding",
7157
- "privacy": "private",
7158
- "return": {
7159
- "type": {
7160
- "text": "boolean"
7161
- }
7162
- }
7163
- },
7164
- {
7165
- "kind": "method",
7166
- "name": "resetToValueEditor",
7167
- "privacy": "private"
7168
- },
7169
- {
7170
- "kind": "method",
7171
- "name": "fieldsChanged"
7172
- },
7173
- {
7174
- "kind": "method",
7175
- "name": "logicalOperatorChanged"
7176
- },
7177
- {
7178
- "kind": "method",
7179
- "name": "assignLeftValue",
7180
- "privacy": "private"
7117
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
7181
7118
  },
7182
7119
  {
7183
7120
  "kind": "method",
7184
- "name": "leftValueChanged"
7121
+ "name": "deleteParameter"
7185
7122
  },
7186
7123
  {
7187
7124
  "kind": "method",
7188
- "name": "assignRightValue",
7189
- "privacy": "private"
7125
+ "name": "parameterChanged"
7190
7126
  },
7191
7127
  {
7192
7128
  "kind": "method",
7193
- "name": "rightCriteriaChanged"
7129
+ "name": "nameChanged"
7194
7130
  },
7195
7131
  {
7196
7132
  "kind": "method",
7197
- "name": "clearRightValueText",
7198
- "privacy": "private"
7133
+ "name": "labelChanged"
7199
7134
  },
7200
7135
  {
7201
7136
  "kind": "method",
7202
- "name": "clearRightValueSelect",
7203
- "privacy": "private"
7137
+ "name": "typeChanged"
7204
7138
  },
7205
7139
  {
7206
7140
  "kind": "method",
7207
- "name": "rightValueTextChanged"
7141
+ "name": "sourceTypeChanged"
7208
7142
  },
7209
7143
  {
7210
7144
  "kind": "method",
7211
- "name": "rightValueSelectChanged"
7145
+ "name": "sourceSelectedChanged"
7212
7146
  },
7213
7147
  {
7214
7148
  "kind": "method",
7215
- "name": "rightValueMultiSelectChanged"
7149
+ "name": "sourceTypedChanged"
7216
7150
  },
7217
7151
  {
7218
7152
  "kind": "method",
7219
- "name": "getEnumValues",
7220
- "return": {
7221
- "type": {
7222
- "text": "string[]"
7153
+ "name": "genericChanged",
7154
+ "privacy": "private",
7155
+ "parameters": [
7156
+ {
7157
+ "name": "parameterAttribute"
7158
+ },
7159
+ {
7160
+ "name": "value"
7223
7161
  }
7224
- }
7162
+ ]
7225
7163
  }
7226
7164
  ],
7227
7165
  "events": [
7228
7166
  {
7229
- "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
7167
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
7230
7168
  "name": "delete"
7231
7169
  },
7232
7170
  {
7233
- "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
7171
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
7234
7172
  "name": "edit"
7235
7173
  }
7236
7174
  ],
7237
7175
  "attributes": [
7238
7176
  {
7239
- "name": "condition",
7240
- "type": {
7241
- "text": "ConditionBuilderEntity"
7242
- },
7243
- "fieldName": "condition"
7244
- },
7245
- {
7246
- "name": "parameters",
7247
- "type": {
7248
- "text": "Array<ParameterBuilderEntity>"
7249
- },
7250
- "default": "[]",
7251
- "fieldName": "parameters"
7252
- },
7253
- {
7254
- "name": "fields",
7177
+ "name": "parameter",
7255
7178
  "type": {
7256
- "text": "Array<string>"
7179
+ "text": "ParameterBuilderEntity"
7257
7180
  },
7258
- "default": "[]",
7259
- "fieldName": "fields"
7181
+ "fieldName": "parameter"
7260
7182
  }
7261
7183
  ],
7262
7184
  "superclass": {
7263
7185
  "name": "GenesisElement",
7264
7186
  "package": "@genesislcap/web-core"
7265
7187
  },
7266
- "tagName": "template-condition-builder",
7188
+ "tagName": "parameter-builder",
7267
7189
  "customElement": true
7268
7190
  }
7269
7191
  ],
7270
7192
  "exports": [
7271
7193
  {
7272
7194
  "kind": "js",
7273
- "name": "TemplateConditionBuilder",
7195
+ "name": "ParameterBuilder",
7274
7196
  "declaration": {
7275
- "name": "TemplateConditionBuilder",
7276
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts"
7197
+ "name": "ParameterBuilder",
7198
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7277
7199
  }
7278
7200
  },
7279
7201
  {
7280
7202
  "kind": "custom-element-definition",
7281
- "name": "template-condition-builder",
7203
+ "name": "parameter-builder",
7282
7204
  "declaration": {
7283
- "name": "TemplateConditionBuilder",
7284
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts"
7205
+ "name": "ParameterBuilder",
7206
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7285
7207
  }
7286
7208
  }
7287
7209
  ]
@@ -7446,214 +7368,292 @@
7446
7368
  },
7447
7369
  {
7448
7370
  "kind": "javascript-module",
7449
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
7450
- "declarations": [
7451
- {
7452
- "kind": "variable",
7453
- "name": "ParameterBuilderStyles",
7454
- "default": "css`\n .parameter-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.param-type::part(control) {\n width: 115px;\n }\n\n rapid-select.param-source-type::part(control) {\n width: 160px;\n }\n\n rapid-select.param-source::part(control) {\n width: ${PARAM_SOURCE_WIDTH}px;\n }\n\n rapid-text-field.param-source::part(root) {\n width: calc(${PARAM_SOURCE_WIDTH}px + 2px);\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
7455
- }
7456
- ],
7457
- "exports": [
7458
- {
7459
- "kind": "js",
7460
- "name": "ParameterBuilderStyles",
7461
- "declaration": {
7462
- "name": "ParameterBuilderStyles",
7463
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
7464
- }
7465
- }
7466
- ]
7467
- },
7468
- {
7469
- "kind": "javascript-module",
7470
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
7371
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
7471
7372
  "declarations": [
7472
7373
  {
7473
7374
  "kind": "variable",
7474
- "name": "ParameterBuilderTemplate",
7475
- "default": "html<ParameterBuilder>`\n <div class=\"parameter-builder\">\n <rapid-text-field\n id=\"param-name\"\n placeholder=\"Name\"\n :value=${sync((x) => x.name)}\n ></rapid-text-field>\n\n <rapid-text-field\n id=\"param-label\"\n placeholder=\"Label\"\n :value=${sync((x) => x.label)}\n ></rapid-text-field>\n\n <rapid-select\n id=\"param-source-type\"\n :value=${sync((x) => x.sourceType)}\n class=\"param-source-type\"\n >\n ${repeat(\n (x) => ALL_PARAM_SOURCE_TYPES,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_USER_TEXT,\n html<ParameterBuilder>`\n <rapid-text-field class=\"param-source\" disabled></rapid-text-field>\n `,\n )}\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_REQ_REP,\n html<ParameterBuilder>`\n <rapid-select\n ${ref('sourceSelect')}\n id=\"param-source\"\n :value=${sync((x) => x.sourceSelected)}\n class=\"param-source\"\n ?disabled=${(x) => x.sourceType !== PARAM_SOURCE_TYPE_REQ_REP}\n >\n ${repeat(\n (x) => x.reqRepItems,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n ${when(\n (x) => x.sourceType === PARAM_SOURCE_TYPE_DEFINED_GROUP,\n html<ParameterBuilder>`\n <rapid-text-field\n ${ref('sourceTextField')}\n class=\"param-source\"\n placeholder=\"item1,item2,item3\"\n :value=${sync((x) => x.sourceTyped)}\n ></rapid-text-field>\n `,\n )}\n\n <rapid-select id=\"param-type\" :value=${sync((x) => x.type)} class=\"param-type\">\n ${repeat(\n (x) => ALL_PARAM_TYPES,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteParameter()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
7375
+ "name": "TemplateConditionBuilderTemplate",
7376
+ "default": "html<TemplateConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.leftValueItems,\n html<Field>`\n <rapid-option value=${(x) => JSON.stringify(x)}>${(x) => x.FIELD_NAME}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n >\n ${repeat(\n (_) => Object.values(LogicalOperator),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select class=\"right-criteria\" :value=${sync((x) => x.rightCriteria)}>\n ${repeat(\n (_) => Object.values(RightCriteria),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html<TemplateConditionBuilder>`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.USER_ENTRY,\n html<TemplateConditionBuilder>`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueSelect)}>\n ${(x) => rightValueItemsOptions(x.rightValueItems)}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
7476
7377
  }
7477
7378
  ],
7478
7379
  "exports": [
7479
7380
  {
7480
7381
  "kind": "js",
7481
- "name": "ParameterBuilderTemplate",
7382
+ "name": "TemplateConditionBuilderTemplate",
7482
7383
  "declaration": {
7483
- "name": "ParameterBuilderTemplate",
7484
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
7384
+ "name": "TemplateConditionBuilderTemplate",
7385
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts"
7485
7386
  }
7486
7387
  }
7487
7388
  ]
7488
7389
  },
7489
7390
  {
7490
7391
  "kind": "javascript-module",
7491
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
7392
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts",
7492
7393
  "declarations": [
7493
7394
  {
7494
7395
  "kind": "class",
7495
- "description": "Parameter builder for notification templates.",
7496
- "name": "ParameterBuilder",
7396
+ "description": "Condition builder for template notification rules.",
7397
+ "name": "TemplateConditionBuilder",
7497
7398
  "members": [
7498
7399
  {
7499
7400
  "kind": "field",
7500
- "name": "parameter",
7401
+ "name": "condition",
7501
7402
  "type": {
7502
- "text": "ParameterBuilderEntity"
7403
+ "text": "ConditionBuilderEntity"
7503
7404
  }
7504
7405
  },
7505
7406
  {
7506
7407
  "kind": "field",
7507
- "name": "name",
7408
+ "name": "parameters",
7508
7409
  "type": {
7509
- "text": "string"
7510
- }
7410
+ "text": "Array<ParameterBuilderEntity>"
7411
+ },
7412
+ "default": "[]"
7511
7413
  },
7512
7414
  {
7513
7415
  "kind": "field",
7514
- "name": "label",
7416
+ "name": "fields",
7515
7417
  "type": {
7516
- "text": "string"
7517
- }
7418
+ "text": "Array<string>"
7419
+ },
7420
+ "default": "[]"
7518
7421
  },
7519
7422
  {
7520
7423
  "kind": "field",
7521
- "name": "type",
7424
+ "name": "isFirst",
7425
+ "type": {
7426
+ "text": "boolean"
7427
+ },
7428
+ "default": "false"
7429
+ },
7430
+ {
7431
+ "kind": "field",
7432
+ "name": "joinOperator",
7522
7433
  "type": {
7523
7434
  "text": "string"
7524
7435
  }
7525
7436
  },
7526
7437
  {
7527
7438
  "kind": "field",
7528
- "name": "sourceType",
7439
+ "name": "leftValue",
7440
+ "type": {
7441
+ "text": "any"
7442
+ },
7443
+ "default": "null"
7444
+ },
7445
+ {
7446
+ "kind": "field",
7447
+ "name": "leftValueItems",
7448
+ "type": {
7449
+ "text": "Array<any>"
7450
+ },
7451
+ "default": "[]"
7452
+ },
7453
+ {
7454
+ "kind": "field",
7455
+ "name": "logicalOperator",
7529
7456
  "type": {
7530
7457
  "text": "string"
7531
- }
7458
+ },
7459
+ "default": "null"
7532
7460
  },
7533
7461
  {
7534
7462
  "kind": "field",
7535
- "name": "sourceSelected",
7463
+ "name": "rightCriteria",
7536
7464
  "type": {
7537
7465
  "text": "string"
7538
7466
  }
7539
7467
  },
7540
7468
  {
7541
7469
  "kind": "field",
7542
- "name": "sourceTyped",
7470
+ "name": "rightValueText",
7543
7471
  "type": {
7544
7472
  "text": "string"
7545
- }
7473
+ },
7474
+ "default": "null"
7546
7475
  },
7547
7476
  {
7548
7477
  "kind": "field",
7549
- "name": "sourceTextField",
7478
+ "name": "rightValueSelect",
7550
7479
  "type": {
7551
- "text": "TextField"
7552
- }
7480
+ "text": "string"
7481
+ },
7482
+ "default": "null"
7553
7483
  },
7554
7484
  {
7555
7485
  "kind": "field",
7556
- "name": "sourceSelect",
7486
+ "name": "rightValueItems",
7557
7487
  "type": {
7558
- "text": "Select"
7559
- }
7488
+ "text": "Array<any>"
7489
+ },
7490
+ "default": "[]"
7560
7491
  },
7561
7492
  {
7562
7493
  "kind": "field",
7563
- "name": "reqRepItems",
7494
+ "name": "rightValueMultiSelect",
7564
7495
  "type": {
7565
- "text": "array"
7496
+ "text": "string[]"
7566
7497
  },
7567
- "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
7498
+ "default": "[]"
7568
7499
  },
7569
7500
  {
7570
7501
  "kind": "method",
7571
- "name": "deleteParameter"
7502
+ "name": "deleteCondition"
7572
7503
  },
7573
7504
  {
7574
7505
  "kind": "method",
7575
- "name": "parameterChanged"
7506
+ "name": "conditionChanged"
7576
7507
  },
7577
7508
  {
7578
7509
  "kind": "method",
7579
- "name": "nameChanged"
7510
+ "name": "joinOperatorChanged"
7580
7511
  },
7581
7512
  {
7582
7513
  "kind": "method",
7583
- "name": "labelChanged"
7514
+ "name": "parametersChanged"
7584
7515
  },
7585
7516
  {
7586
7517
  "kind": "method",
7587
- "name": "typeChanged"
7518
+ "name": "getMatchingParameter",
7519
+ "privacy": "private",
7520
+ "return": {
7521
+ "type": {
7522
+ "text": "ParameterBuilderEntity | undefined"
7523
+ }
7524
+ }
7588
7525
  },
7589
7526
  {
7590
7527
  "kind": "method",
7591
- "name": "sourceTypeChanged"
7528
+ "name": "syncParameterBinding",
7529
+ "privacy": "private",
7530
+ "return": {
7531
+ "type": {
7532
+ "text": "boolean"
7533
+ }
7534
+ }
7592
7535
  },
7593
7536
  {
7594
7537
  "kind": "method",
7595
- "name": "sourceSelectedChanged"
7538
+ "name": "resetToValueEditor",
7539
+ "privacy": "private"
7596
7540
  },
7597
7541
  {
7598
7542
  "kind": "method",
7599
- "name": "sourceTypedChanged"
7543
+ "name": "fieldsChanged"
7600
7544
  },
7601
7545
  {
7602
7546
  "kind": "method",
7603
- "name": "genericChanged",
7604
- "privacy": "private",
7605
- "parameters": [
7606
- {
7607
- "name": "parameterAttribute"
7608
- },
7609
- {
7610
- "name": "value"
7547
+ "name": "logicalOperatorChanged"
7548
+ },
7549
+ {
7550
+ "kind": "method",
7551
+ "name": "assignLeftValue",
7552
+ "privacy": "private"
7553
+ },
7554
+ {
7555
+ "kind": "method",
7556
+ "name": "leftValueChanged"
7557
+ },
7558
+ {
7559
+ "kind": "method",
7560
+ "name": "assignRightValue",
7561
+ "privacy": "private"
7562
+ },
7563
+ {
7564
+ "kind": "method",
7565
+ "name": "rightCriteriaChanged"
7566
+ },
7567
+ {
7568
+ "kind": "method",
7569
+ "name": "clearRightValueText",
7570
+ "privacy": "private"
7571
+ },
7572
+ {
7573
+ "kind": "method",
7574
+ "name": "clearRightValueSelect",
7575
+ "privacy": "private"
7576
+ },
7577
+ {
7578
+ "kind": "method",
7579
+ "name": "rightValueTextChanged"
7580
+ },
7581
+ {
7582
+ "kind": "method",
7583
+ "name": "rightValueSelectChanged"
7584
+ },
7585
+ {
7586
+ "kind": "method",
7587
+ "name": "rightValueMultiSelectChanged"
7588
+ },
7589
+ {
7590
+ "kind": "method",
7591
+ "name": "getEnumValues",
7592
+ "return": {
7593
+ "type": {
7594
+ "text": "string[]"
7611
7595
  }
7612
- ]
7596
+ }
7613
7597
  }
7614
7598
  ],
7615
7599
  "events": [
7616
7600
  {
7617
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
7601
+ "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
7618
7602
  "name": "delete"
7619
7603
  },
7620
7604
  {
7621
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
7605
+ "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
7622
7606
  "name": "edit"
7623
7607
  }
7624
7608
  ],
7625
7609
  "attributes": [
7626
7610
  {
7627
- "name": "parameter",
7611
+ "name": "condition",
7628
7612
  "type": {
7629
- "text": "ParameterBuilderEntity"
7613
+ "text": "ConditionBuilderEntity"
7630
7614
  },
7631
- "fieldName": "parameter"
7615
+ "fieldName": "condition"
7616
+ },
7617
+ {
7618
+ "name": "parameters",
7619
+ "type": {
7620
+ "text": "Array<ParameterBuilderEntity>"
7621
+ },
7622
+ "default": "[]",
7623
+ "fieldName": "parameters"
7624
+ },
7625
+ {
7626
+ "name": "fields",
7627
+ "type": {
7628
+ "text": "Array<string>"
7629
+ },
7630
+ "default": "[]",
7631
+ "fieldName": "fields"
7632
7632
  }
7633
7633
  ],
7634
7634
  "superclass": {
7635
7635
  "name": "GenesisElement",
7636
7636
  "package": "@genesislcap/web-core"
7637
7637
  },
7638
- "tagName": "parameter-builder",
7638
+ "tagName": "template-condition-builder",
7639
7639
  "customElement": true
7640
7640
  }
7641
7641
  ],
7642
7642
  "exports": [
7643
7643
  {
7644
7644
  "kind": "js",
7645
- "name": "ParameterBuilder",
7645
+ "name": "TemplateConditionBuilder",
7646
7646
  "declaration": {
7647
- "name": "ParameterBuilder",
7648
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7647
+ "name": "TemplateConditionBuilder",
7648
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts"
7649
7649
  }
7650
7650
  },
7651
7651
  {
7652
7652
  "kind": "custom-element-definition",
7653
- "name": "parameter-builder",
7653
+ "name": "template-condition-builder",
7654
7654
  "declaration": {
7655
- "name": "ParameterBuilder",
7656
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7655
+ "name": "TemplateConditionBuilder",
7656
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts"
7657
7657
  }
7658
7658
  }
7659
7659
  ]