@genesislcap/pbc-notify-ui 15.13.1 → 15.14.0-DCD-4786.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/custom-elements.json +742 -742
  2. package/dist/dts/react.d.ts +30 -30
  3. package/dist/react.cjs +19 -19
  4. package/dist/react.mjs +15 -15
  5. package/package.json +23 -24
  6. package/api-extractor.json +0 -4
  7. package/dist/dts/utils/alert-sound.test.d.ts +0 -2
  8. package/dist/dts/utils/alert-sound.test.d.ts.map +0 -1
  9. package/dist/esm/utils/alert-sound.test.js +0 -25
  10. package/dist/tsconfig.tsbuildinfo +0 -1
  11. package/src/components/components.ts +0 -64
  12. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts +0 -30
  13. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts +0 -16
  14. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts +0 -68
  15. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts +0 -18
  16. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts +0 -22
  17. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.ts +0 -43
  18. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts +0 -79
  19. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts +0 -81
  20. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts +0 -130
  21. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.styles.ts +0 -39
  22. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.template.ts +0 -96
  23. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.ts +0 -135
  24. package/src/components/foundation-inbox/inbox-base/inbox-base.ts +0 -628
  25. package/src/components/foundation-inbox/inbox.styles.ts +0 -474
  26. package/src/components/foundation-inbox/inbox.template.ts +0 -393
  27. package/src/components/foundation-inbox/inbox.ts +0 -26
  28. package/src/components/foundation-inbox/inbox.types.ts +0 -93
  29. package/src/components/foundation-inbox/inbox.utils.ts +0 -37
  30. package/src/components/foundation-notification-dashboard/alert-sound-attachment.ts +0 -283
  31. package/src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts +0 -96
  32. package/src/components/foundation-notification-dashboard/components/routes/route-management.ts +0 -60
  33. package/src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts +0 -58
  34. package/src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts +0 -68
  35. package/src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts +0 -43
  36. package/src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts +0 -48
  37. package/src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts +0 -73
  38. package/src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts +0 -48
  39. package/src/components/foundation-notification-dashboard/components/rules/columns.ts +0 -48
  40. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts +0 -183
  41. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts +0 -313
  42. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts +0 -4
  43. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts +0 -74
  44. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts +0 -82
  45. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts +0 -195
  46. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts +0 -274
  47. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.ts +0 -37
  48. package/src/components/foundation-notification-dashboard/components/rules/rule-management.ts +0 -76
  49. package/src/components/foundation-notification-dashboard/components/templates/columns.ts +0 -48
  50. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts +0 -59
  51. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts +0 -95
  52. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts +0 -129
  53. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts +0 -150
  54. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts +0 -303
  55. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts +0 -76
  56. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts +0 -81
  57. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts +0 -176
  58. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts +0 -320
  59. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.types.ts +0 -39
  60. package/src/components/foundation-notification-dashboard/components/templates/template-management.ts +0 -79
  61. package/src/components/foundation-notification-dashboard/index.ts +0 -1
  62. package/src/components/foundation-notification-dashboard/notification-dashboard.styles.ts +0 -21
  63. package/src/components/foundation-notification-dashboard/notification-dashboard.tabs.ts +0 -35
  64. package/src/components/foundation-notification-dashboard/notification-dashboard.template.ts +0 -57
  65. package/src/components/foundation-notification-dashboard/notification-dashboard.ts +0 -40
  66. package/src/components/foundation-notification-dashboard/notification-dashboard.utils.ts +0 -779
  67. package/src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts +0 -190
  68. package/src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts +0 -202
  69. package/src/components/foundation-notification-dashboard/styles/management.styles.ts +0 -21
  70. package/src/components/foundation-notification-dashboard/types/expression-type.ts +0 -13
  71. package/src/components/foundation-notification-dashboard/types/logical-operator.ts +0 -18
  72. package/src/components/foundation-notification-dashboard/types/param-source-type.ts +0 -11
  73. package/src/components/foundation-notification-dashboard/types/param-type.ts +0 -13
  74. package/src/components/foundation-notification-dashboard/types/right-criteria.ts +0 -6
  75. package/src/components/foundation-notification-dashboard/types/rule-execution-strategy.ts +0 -6
  76. package/src/components/foundation-notification-dashboard/types/severity.ts +0 -13
  77. package/src/components/foundation-sounds/foundation-sounds-panel.styles.ts +0 -201
  78. package/src/components/foundation-sounds/foundation-sounds-panel.template.ts +0 -188
  79. package/src/components/foundation-sounds/foundation-sounds-panel.ts +0 -280
  80. package/src/components/foundation-sounds/foundation-sounds.styles.ts +0 -8
  81. package/src/components/foundation-sounds/foundation-sounds.ts +0 -222
  82. package/src/globals.d.ts +0 -7
  83. package/src/index.federated.ts +0 -1
  84. package/src/index.ts +0 -20
  85. package/src/notify.types.ts +0 -178
  86. package/src/sandbox.ts +0 -83
  87. package/src/services/alert.service.ts +0 -36
  88. package/src/services/inbox.service.ts +0 -153
  89. package/src/services/notify-route.service.ts +0 -177
  90. package/src/services/notify.service.ts +0 -21
  91. package/src/services/rule.service.ts +0 -165
  92. package/src/services/system.service.ts +0 -47
  93. package/src/services/template.service.ts +0 -71
  94. package/src/styles/scrollbar.styles.ts +0 -15
  95. package/src/utils/alert-sound.test.ts +0 -32
  96. package/src/utils/alert-sound.ts +0 -1135
  97. package/src/utils/eventDetail.ts +0 -5
  98. package/src/utils/gridConfig.ts +0 -14
  99. package/src/utils/humanize.ts +0 -14
  100. package/src/utils/icons.ts +0 -15
  101. package/src/utils/index.ts +0 -9
  102. package/src/utils/logger.ts +0 -3
  103. package/src/utils/notifyPermissions.ts +0 -6
  104. package/src/utils/toBoolean.ts +0 -7
  105. package/src/utils/updateArray.ts +0 -48
  106. package/tsconfig.json +0 -9
@@ -4229,95 +4229,6 @@
4229
4229
  }
4230
4230
  ]
4231
4231
  },
4232
- {
4233
- "kind": "javascript-module",
4234
- "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
4235
- "declarations": [
4236
- {
4237
- "kind": "variable",
4238
- "name": "ConditionBuilderStyles",
4239
- "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\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.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
4240
- },
4241
- {
4242
- "kind": "variable",
4243
- "name": "ConditionGroupStyles",
4244
- "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
4245
- }
4246
- ],
4247
- "exports": [
4248
- {
4249
- "kind": "js",
4250
- "name": "ConditionBuilderStyles",
4251
- "declaration": {
4252
- "name": "ConditionBuilderStyles",
4253
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4254
- }
4255
- },
4256
- {
4257
- "kind": "js",
4258
- "name": "ConditionGroupStyles",
4259
- "declaration": {
4260
- "name": "ConditionGroupStyles",
4261
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4262
- }
4263
- }
4264
- ]
4265
- },
4266
- {
4267
- "kind": "javascript-module",
4268
- "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
4269
- "declarations": [
4270
- {
4271
- "kind": "variable",
4272
- "name": "DynamicRuleManagementStyles",
4273
- "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
4274
- },
4275
- {
4276
- "kind": "variable",
4277
- "name": "DynamicRuleDialogStyles",
4278
- "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
4279
- }
4280
- ],
4281
- "exports": [
4282
- {
4283
- "kind": "js",
4284
- "name": "DynamicRuleManagementStyles",
4285
- "declaration": {
4286
- "name": "DynamicRuleManagementStyles",
4287
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4288
- }
4289
- },
4290
- {
4291
- "kind": "js",
4292
- "name": "DynamicRuleDialogStyles",
4293
- "declaration": {
4294
- "name": "DynamicRuleDialogStyles",
4295
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4296
- }
4297
- }
4298
- ]
4299
- },
4300
- {
4301
- "kind": "javascript-module",
4302
- "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
4303
- "declarations": [
4304
- {
4305
- "kind": "variable",
4306
- "name": "managementGridStyles",
4307
- "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
4308
- }
4309
- ],
4310
- "exports": [
4311
- {
4312
- "kind": "js",
4313
- "name": "managementGridStyles",
4314
- "declaration": {
4315
- "name": "managementGridStyles",
4316
- "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
4317
- }
4318
- }
4319
- ]
4320
- },
4321
4232
  {
4322
4233
  "kind": "javascript-module",
4323
4234
  "path": "src/components/foundation-notification-dashboard/types/expression-type.ts",
@@ -4918,6 +4829,95 @@
4918
4829
  }
4919
4830
  ]
4920
4831
  },
4832
+ {
4833
+ "kind": "javascript-module",
4834
+ "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
4835
+ "declarations": [
4836
+ {
4837
+ "kind": "variable",
4838
+ "name": "ConditionBuilderStyles",
4839
+ "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\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.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
4840
+ },
4841
+ {
4842
+ "kind": "variable",
4843
+ "name": "ConditionGroupStyles",
4844
+ "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
4845
+ }
4846
+ ],
4847
+ "exports": [
4848
+ {
4849
+ "kind": "js",
4850
+ "name": "ConditionBuilderStyles",
4851
+ "declaration": {
4852
+ "name": "ConditionBuilderStyles",
4853
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4854
+ }
4855
+ },
4856
+ {
4857
+ "kind": "js",
4858
+ "name": "ConditionGroupStyles",
4859
+ "declaration": {
4860
+ "name": "ConditionGroupStyles",
4861
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4862
+ }
4863
+ }
4864
+ ]
4865
+ },
4866
+ {
4867
+ "kind": "javascript-module",
4868
+ "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
4869
+ "declarations": [
4870
+ {
4871
+ "kind": "variable",
4872
+ "name": "DynamicRuleManagementStyles",
4873
+ "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
4874
+ },
4875
+ {
4876
+ "kind": "variable",
4877
+ "name": "DynamicRuleDialogStyles",
4878
+ "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
4879
+ }
4880
+ ],
4881
+ "exports": [
4882
+ {
4883
+ "kind": "js",
4884
+ "name": "DynamicRuleManagementStyles",
4885
+ "declaration": {
4886
+ "name": "DynamicRuleManagementStyles",
4887
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4888
+ }
4889
+ },
4890
+ {
4891
+ "kind": "js",
4892
+ "name": "DynamicRuleDialogStyles",
4893
+ "declaration": {
4894
+ "name": "DynamicRuleDialogStyles",
4895
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4896
+ }
4897
+ }
4898
+ ]
4899
+ },
4900
+ {
4901
+ "kind": "javascript-module",
4902
+ "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
4903
+ "declarations": [
4904
+ {
4905
+ "kind": "variable",
4906
+ "name": "managementGridStyles",
4907
+ "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
4908
+ }
4909
+ ],
4910
+ "exports": [
4911
+ {
4912
+ "kind": "js",
4913
+ "name": "managementGridStyles",
4914
+ "declaration": {
4915
+ "name": "managementGridStyles",
4916
+ "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
4917
+ }
4918
+ }
4919
+ ]
4920
+ },
4921
4921
  {
4922
4922
  "kind": "javascript-module",
4923
4923
  "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
@@ -5063,58 +5063,62 @@
5063
5063
  },
5064
5064
  {
5065
5065
  "kind": "javascript-module",
5066
- "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts",
5066
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts",
5067
5067
  "declarations": [
5068
5068
  {
5069
5069
  "kind": "variable",
5070
- "name": "FoundationInboxFlyoutStyles",
5071
- "default": "css`\n rapid-flyout::part(flyout) {\n width: 30%;\n min-width: 320px;\n padding: 0;\n }\n\n rapid-flyout::part(content) {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n\n ${FoundationInboxStyles}\n`"
5070
+ "name": "InboxSubscriptionStyles",
5071
+ "default": "css`\n .inbox-subscription {\n display: flex;\n flex-direction: column;\n }\n\n .inbox-subscription.inline {\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .inbox-subscription-header {\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription-empty {\n padding: 0 calc(var(--design-unit) * 2px);\n margin: calc(var(--design-unit) * 2px) 0 0;\n }\n\n .inbox-subscription-content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 3px);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-content {\n overflow: auto;\n max-height: calc(var(--design-unit) * 80px);\n }\n\n .inbox-subscription.inline .inbox-subscription-content {\n margin: calc(var(--design-unit) * 2px) 0 0;\n overflow: visible;\n max-height: none;\n padding-bottom: calc(var(--design-unit) * 4px);\n }\n\n .inbox-subscription.inline .control:focus-within {\n position: relative;\n z-index: 2;\n }\n\n .inbox-subscription-footer {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px) 0 0;\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-footer {\n padding: calc(var(--design-unit) * 2px);\n margin-top: 0;\n }\n\n .inbox-subscription-footer.auto-submit {\n justify-content: flex-end;\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n }\n\n rapid-button.subscribe,\n rapid-button.cancel {\n display: flex;\n margin: 0;\n flex: 1;\n }\n`"
5072
5072
  }
5073
5073
  ],
5074
5074
  "exports": [
5075
5075
  {
5076
5076
  "kind": "js",
5077
- "name": "FoundationInboxFlyoutStyles",
5077
+ "name": "InboxSubscriptionStyles",
5078
5078
  "declaration": {
5079
- "name": "FoundationInboxFlyoutStyles",
5080
- "module": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts"
5079
+ "name": "InboxSubscriptionStyles",
5080
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts"
5081
5081
  }
5082
5082
  }
5083
5083
  ]
5084
5084
  },
5085
5085
  {
5086
5086
  "kind": "javascript-module",
5087
- "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts",
5087
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts",
5088
5088
  "declarations": [
5089
5089
  {
5090
5090
  "kind": "variable",
5091
- "name": "FoundationInboxFlyoutTemplate",
5092
- "default": "html<FoundationInboxFlyout>`\n <rapid-flyout\n ${ref('flyout')}\n position=\"right\"\n @closed=${(x) => (x.flyoutClosed = true)}\n :closed=${(x) => x.flyoutClosed}\n displayHeader=${false}\n >\n <div class=\"inbox-header\">\n <div class=\"inbox-header-title\">Alerts Center</div>\n <rapid-button class=\"inbox-header-close\" @click=${(x) => x.close()}>\n <rapid-icon part=\"icon\" name=\"xmark\" size=\"xl\"></rapid-icon>\n </rapid-button>\n </div>\n\n ${FoundationInboxTemplate}\n </rapid-flyout>\n`"
5091
+ "name": "InboxSubscriptionTemplate",
5092
+ "default": "html<InboxSubscription>`\n <div class=\"inbox-subscription ${(x) => (x.inline ? 'inline' : '')}\">\n ${when(\n (x) => !x.inline,\n html`\n <div class=\"inbox-subscription-header\">\n Subscribe to\n <span style=\"font-weight: bold;\">${(x) => x.template.RULE_NAME}</span>\n </div>\n `,\n )}\n ${when(\n (x) => Object.values(x.template?.PARAMETERS ?? {}).length === 0,\n html`\n <p class=\"inbox-subscription-empty\">The selected template doesn't have parameters.</p>\n `,\n )}\n ${when(\n (x) => Object.values(x.template?.PARAMETERS ?? {}).length > 0,\n html`\n <div class=\"inbox-subscription-content\">\n ${repeat(\n // @ts-ignore\n (x) => Object.values(x.template?.PARAMETERS ?? {}),\n html<RuleParameterEntity>`\n <rule-parameter\n :parameter=${(x) => x}\n :isFirstElement=${(x, c) => c.parent.isFirstElement(x)}\n :operator=${(x, c) => c.parent.parametersOperators[x.PARAM_NAME]}\n :requireSelection=${(x, c) => c.parent.usesAutoSubmit()}\n @parameterEdited=${(x, c) => c.parent.parameterEdit(eventDetail(c))}\n ></rule-parameter>\n `,\n )}\n </div>\n `,\n )}\n ${when(\n (x) => !x.inline || x.requiresManualSubscribe(),\n html`\n <div class=\"inbox-subscription-footer\">\n ${when(\n (x) => x.inline,\n html`\n <rapid-button\n class=\"cancel\"\n appearance=\"neutral\"\n @click=${(x) => x.cancelSubscribe()}\n >\n Cancel\n </rapid-button>\n `,\n )}\n <rapid-button\n class=\"subscribe\"\n appearance=\"primary\"\n @click=${(x) => x.subscribeTemplate()}\n ?disabled=${(x) => x.subscribeDisabled}\n >\n Subscribe\n </rapid-button>\n </div>\n `,\n )}\n ${when(\n (x) => x.inline && x.usesAutoSubmit(),\n html`\n <div class=\"inbox-subscription-footer auto-submit\">\n <rapid-button class=\"cancel\" appearance=\"neutral\" @click=${(x) => x.cancelSubscribe()}>\n Cancel\n </rapid-button>\n </div>\n `,\n )}\n </div>\n`"
5093
5093
  }
5094
5094
  ],
5095
5095
  "exports": [
5096
5096
  {
5097
5097
  "kind": "js",
5098
- "name": "FoundationInboxFlyoutTemplate",
5098
+ "name": "InboxSubscriptionTemplate",
5099
5099
  "declaration": {
5100
- "name": "FoundationInboxFlyoutTemplate",
5101
- "module": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts"
5100
+ "name": "InboxSubscriptionTemplate",
5101
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts"
5102
5102
  }
5103
5103
  }
5104
5104
  ]
5105
5105
  },
5106
5106
  {
5107
5107
  "kind": "javascript-module",
5108
- "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.ts",
5108
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts",
5109
5109
  "declarations": [
5110
5110
  {
5111
5111
  "kind": "class",
5112
- "description": "",
5113
- "name": "FoundationInboxFlyout",
5112
+ "description": "Inbox subscription configuration UI.",
5113
+ "name": "InboxSubscription",
5114
5114
  "members": [
5115
5115
  {
5116
5116
  "kind": "field",
5117
- "name": "ready",
5117
+ "name": "template"
5118
+ },
5119
+ {
5120
+ "kind": "field",
5121
+ "name": "inline",
5118
5122
  "type": {
5119
5123
  "text": "boolean"
5120
5124
  },
@@ -5122,47 +5126,257 @@
5122
5126
  },
5123
5127
  {
5124
5128
  "kind": "field",
5125
- "name": "flyout",
5129
+ "name": "parametersDetails",
5126
5130
  "type": {
5127
- "text": "Flyout"
5128
- }
5131
+ "text": "object"
5132
+ },
5133
+ "privacy": "private",
5134
+ "default": "{}"
5129
5135
  },
5130
5136
  {
5131
5137
  "kind": "field",
5132
- "name": "flyoutClosed",
5138
+ "name": "isSubmitting",
5133
5139
  "type": {
5134
5140
  "text": "boolean"
5135
5141
  },
5136
- "default": "true"
5137
- },
5138
- {
5139
- "kind": "method",
5140
- "name": "open",
5141
- "privacy": "public"
5142
- },
5143
- {
5144
- "kind": "method",
5145
- "name": "close",
5146
- "privacy": "public"
5142
+ "privacy": "private",
5143
+ "default": "false"
5147
5144
  },
5148
5145
  {
5149
- "kind": "method",
5150
- "name": "loadRemotes"
5146
+ "kind": "field",
5147
+ "name": "parametersOperators",
5148
+ "type": {
5149
+ "text": "object"
5150
+ },
5151
+ "default": "{}"
5151
5152
  },
5152
5153
  {
5153
5154
  "kind": "field",
5154
- "name": "auth",
5155
+ "name": "subscribeDisabled",
5155
5156
  "type": {
5156
- "text": "Auth"
5157
+ "text": "boolean"
5157
5158
  },
5158
- "inheritedFrom": {
5159
- "name": "FoundationInboxBase",
5160
- "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
5161
- }
5159
+ "default": "true"
5162
5160
  },
5163
5161
  {
5164
5162
  "kind": "field",
5165
- "name": "connect",
5163
+ "name": "ruleService",
5164
+ "type": {
5165
+ "text": "RuleService"
5166
+ }
5167
+ },
5168
+ {
5169
+ "kind": "method",
5170
+ "name": "templateChanged"
5171
+ },
5172
+ {
5173
+ "kind": "method",
5174
+ "name": "usesAutoSubmit",
5175
+ "return": {
5176
+ "type": {
5177
+ "text": "boolean"
5178
+ }
5179
+ }
5180
+ },
5181
+ {
5182
+ "kind": "method",
5183
+ "name": "requiresManualSubscribe",
5184
+ "return": {
5185
+ "type": {
5186
+ "text": "boolean"
5187
+ }
5188
+ }
5189
+ },
5190
+ {
5191
+ "kind": "method",
5192
+ "name": "parameterEdit",
5193
+ "parameters": [
5194
+ {
5195
+ "name": "value",
5196
+ "type": {
5197
+ "text": "any"
5198
+ }
5199
+ }
5200
+ ]
5201
+ },
5202
+ {
5203
+ "kind": "method",
5204
+ "name": "autoSubscribe",
5205
+ "privacy": "private"
5206
+ },
5207
+ {
5208
+ "kind": "method",
5209
+ "name": "verifySubscribe"
5210
+ },
5211
+ {
5212
+ "kind": "field",
5213
+ "name": "isFirstElement"
5214
+ },
5215
+ {
5216
+ "kind": "method",
5217
+ "name": "subscribeTemplate"
5218
+ },
5219
+ {
5220
+ "kind": "method",
5221
+ "name": "cancelSubscribe"
5222
+ },
5223
+ {
5224
+ "kind": "field",
5225
+ "name": "createParametersOperatorMap"
5226
+ }
5227
+ ],
5228
+ "events": [
5229
+ {
5230
+ "description": "Fired when a template subscription is created",
5231
+ "name": "templateSubscribed"
5232
+ },
5233
+ {
5234
+ "description": "Fired when inline parameter entry is cancelled",
5235
+ "name": "subscribeCancelled"
5236
+ }
5237
+ ],
5238
+ "attributes": [
5239
+ {
5240
+ "name": "template",
5241
+ "fieldName": "template"
5242
+ },
5243
+ {
5244
+ "type": {
5245
+ "text": "boolean"
5246
+ },
5247
+ "default": "false",
5248
+ "fieldName": "inline"
5249
+ }
5250
+ ],
5251
+ "superclass": {
5252
+ "name": "GenesisElement",
5253
+ "package": "@genesislcap/web-core"
5254
+ },
5255
+ "tagName": "inbox-subscription",
5256
+ "customElement": true
5257
+ }
5258
+ ],
5259
+ "exports": [
5260
+ {
5261
+ "kind": "js",
5262
+ "name": "InboxSubscription",
5263
+ "declaration": {
5264
+ "name": "InboxSubscription",
5265
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts"
5266
+ }
5267
+ },
5268
+ {
5269
+ "kind": "custom-element-definition",
5270
+ "name": "inbox-subscription",
5271
+ "declaration": {
5272
+ "name": "InboxSubscription",
5273
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts"
5274
+ }
5275
+ }
5276
+ ]
5277
+ },
5278
+ {
5279
+ "kind": "javascript-module",
5280
+ "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts",
5281
+ "declarations": [
5282
+ {
5283
+ "kind": "variable",
5284
+ "name": "FoundationInboxFlyoutStyles",
5285
+ "default": "css`\n rapid-flyout::part(flyout) {\n width: 30%;\n min-width: 320px;\n padding: 0;\n }\n\n rapid-flyout::part(content) {\n height: 100%;\n display: flex;\n flex-direction: column;\n }\n\n ${FoundationInboxStyles}\n`"
5286
+ }
5287
+ ],
5288
+ "exports": [
5289
+ {
5290
+ "kind": "js",
5291
+ "name": "FoundationInboxFlyoutStyles",
5292
+ "declaration": {
5293
+ "name": "FoundationInboxFlyoutStyles",
5294
+ "module": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts"
5295
+ }
5296
+ }
5297
+ ]
5298
+ },
5299
+ {
5300
+ "kind": "javascript-module",
5301
+ "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts",
5302
+ "declarations": [
5303
+ {
5304
+ "kind": "variable",
5305
+ "name": "FoundationInboxFlyoutTemplate",
5306
+ "default": "html<FoundationInboxFlyout>`\n <rapid-flyout\n ${ref('flyout')}\n position=\"right\"\n @closed=${(x) => (x.flyoutClosed = true)}\n :closed=${(x) => x.flyoutClosed}\n displayHeader=${false}\n >\n <div class=\"inbox-header\">\n <div class=\"inbox-header-title\">Alerts Center</div>\n <rapid-button class=\"inbox-header-close\" @click=${(x) => x.close()}>\n <rapid-icon part=\"icon\" name=\"xmark\" size=\"xl\"></rapid-icon>\n </rapid-button>\n </div>\n\n ${FoundationInboxTemplate}\n </rapid-flyout>\n`"
5307
+ }
5308
+ ],
5309
+ "exports": [
5310
+ {
5311
+ "kind": "js",
5312
+ "name": "FoundationInboxFlyoutTemplate",
5313
+ "declaration": {
5314
+ "name": "FoundationInboxFlyoutTemplate",
5315
+ "module": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts"
5316
+ }
5317
+ }
5318
+ ]
5319
+ },
5320
+ {
5321
+ "kind": "javascript-module",
5322
+ "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.ts",
5323
+ "declarations": [
5324
+ {
5325
+ "kind": "class",
5326
+ "description": "",
5327
+ "name": "FoundationInboxFlyout",
5328
+ "members": [
5329
+ {
5330
+ "kind": "field",
5331
+ "name": "ready",
5332
+ "type": {
5333
+ "text": "boolean"
5334
+ },
5335
+ "default": "false"
5336
+ },
5337
+ {
5338
+ "kind": "field",
5339
+ "name": "flyout",
5340
+ "type": {
5341
+ "text": "Flyout"
5342
+ }
5343
+ },
5344
+ {
5345
+ "kind": "field",
5346
+ "name": "flyoutClosed",
5347
+ "type": {
5348
+ "text": "boolean"
5349
+ },
5350
+ "default": "true"
5351
+ },
5352
+ {
5353
+ "kind": "method",
5354
+ "name": "open",
5355
+ "privacy": "public"
5356
+ },
5357
+ {
5358
+ "kind": "method",
5359
+ "name": "close",
5360
+ "privacy": "public"
5361
+ },
5362
+ {
5363
+ "kind": "method",
5364
+ "name": "loadRemotes"
5365
+ },
5366
+ {
5367
+ "kind": "field",
5368
+ "name": "auth",
5369
+ "type": {
5370
+ "text": "Auth"
5371
+ },
5372
+ "inheritedFrom": {
5373
+ "name": "FoundationInboxBase",
5374
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
5375
+ }
5376
+ },
5377
+ {
5378
+ "kind": "field",
5379
+ "name": "connect",
5166
5380
  "type": {
5167
5381
  "text": "Connect"
5168
5382
  },
@@ -6175,221 +6389,42 @@
6175
6389
  },
6176
6390
  {
6177
6391
  "kind": "javascript-module",
6178
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts",
6392
+ "path": "src/components/foundation-notification-dashboard/components/routes/route-management.ts",
6179
6393
  "declarations": [
6180
6394
  {
6181
- "kind": "variable",
6182
- "name": "InboxSubscriptionStyles",
6183
- "default": "css`\n .inbox-subscription {\n display: flex;\n flex-direction: column;\n }\n\n .inbox-subscription.inline {\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .inbox-subscription-header {\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription-empty {\n padding: 0 calc(var(--design-unit) * 2px);\n margin: calc(var(--design-unit) * 2px) 0 0;\n }\n\n .inbox-subscription-content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 3px);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-content {\n overflow: auto;\n max-height: calc(var(--design-unit) * 80px);\n }\n\n .inbox-subscription.inline .inbox-subscription-content {\n margin: calc(var(--design-unit) * 2px) 0 0;\n overflow: visible;\n max-height: none;\n padding-bottom: calc(var(--design-unit) * 4px);\n }\n\n .inbox-subscription.inline .control:focus-within {\n position: relative;\n z-index: 2;\n }\n\n .inbox-subscription-footer {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px) 0 0;\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-footer {\n padding: calc(var(--design-unit) * 2px);\n margin-top: 0;\n }\n\n .inbox-subscription-footer.auto-submit {\n justify-content: flex-end;\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n }\n\n rapid-button.subscribe,\n rapid-button.cancel {\n display: flex;\n margin: 0;\n flex: 1;\n }\n`"
6395
+ "kind": "class",
6396
+ "description": "",
6397
+ "name": "RouteManagement",
6398
+ "superclass": {
6399
+ "name": "GenesisElement",
6400
+ "package": "@genesislcap/web-core"
6401
+ },
6402
+ "tagName": "route-management",
6403
+ "customElement": true
6184
6404
  }
6185
6405
  ],
6186
6406
  "exports": [
6187
6407
  {
6188
6408
  "kind": "js",
6189
- "name": "InboxSubscriptionStyles",
6409
+ "name": "RouteManagement",
6190
6410
  "declaration": {
6191
- "name": "InboxSubscriptionStyles",
6192
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts"
6411
+ "name": "RouteManagement",
6412
+ "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
6413
+ }
6414
+ },
6415
+ {
6416
+ "kind": "custom-element-definition",
6417
+ "name": "route-management",
6418
+ "declaration": {
6419
+ "name": "RouteManagement",
6420
+ "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
6193
6421
  }
6194
6422
  }
6195
6423
  ]
6196
6424
  },
6197
6425
  {
6198
6426
  "kind": "javascript-module",
6199
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts",
6200
- "declarations": [
6201
- {
6202
- "kind": "variable",
6203
- "name": "InboxSubscriptionTemplate",
6204
- "default": "html<InboxSubscription>`\n <div class=\"inbox-subscription ${(x) => (x.inline ? 'inline' : '')}\">\n ${when(\n (x) => !x.inline,\n html`\n <div class=\"inbox-subscription-header\">\n Subscribe to\n <span style=\"font-weight: bold;\">${(x) => x.template.RULE_NAME}</span>\n </div>\n `,\n )}\n ${when(\n (x) => Object.values(x.template?.PARAMETERS ?? {}).length === 0,\n html`\n <p class=\"inbox-subscription-empty\">The selected template doesn't have parameters.</p>\n `,\n )}\n ${when(\n (x) => Object.values(x.template?.PARAMETERS ?? {}).length > 0,\n html`\n <div class=\"inbox-subscription-content\">\n ${repeat(\n // @ts-ignore\n (x) => Object.values(x.template?.PARAMETERS ?? {}),\n html<RuleParameterEntity>`\n <rule-parameter\n :parameter=${(x) => x}\n :isFirstElement=${(x, c) => c.parent.isFirstElement(x)}\n :operator=${(x, c) => c.parent.parametersOperators[x.PARAM_NAME]}\n :requireSelection=${(x, c) => c.parent.usesAutoSubmit()}\n @parameterEdited=${(x, c) => c.parent.parameterEdit(eventDetail(c))}\n ></rule-parameter>\n `,\n )}\n </div>\n `,\n )}\n ${when(\n (x) => !x.inline || x.requiresManualSubscribe(),\n html`\n <div class=\"inbox-subscription-footer\">\n ${when(\n (x) => x.inline,\n html`\n <rapid-button\n class=\"cancel\"\n appearance=\"neutral\"\n @click=${(x) => x.cancelSubscribe()}\n >\n Cancel\n </rapid-button>\n `,\n )}\n <rapid-button\n class=\"subscribe\"\n appearance=\"primary\"\n @click=${(x) => x.subscribeTemplate()}\n ?disabled=${(x) => x.subscribeDisabled}\n >\n Subscribe\n </rapid-button>\n </div>\n `,\n )}\n ${when(\n (x) => x.inline && x.usesAutoSubmit(),\n html`\n <div class=\"inbox-subscription-footer auto-submit\">\n <rapid-button class=\"cancel\" appearance=\"neutral\" @click=${(x) => x.cancelSubscribe()}>\n Cancel\n </rapid-button>\n </div>\n `,\n )}\n </div>\n`"
6205
- }
6206
- ],
6207
- "exports": [
6208
- {
6209
- "kind": "js",
6210
- "name": "InboxSubscriptionTemplate",
6211
- "declaration": {
6212
- "name": "InboxSubscriptionTemplate",
6213
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts"
6214
- }
6215
- }
6216
- ]
6217
- },
6218
- {
6219
- "kind": "javascript-module",
6220
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts",
6221
- "declarations": [
6222
- {
6223
- "kind": "class",
6224
- "description": "Inbox subscription configuration UI.",
6225
- "name": "InboxSubscription",
6226
- "members": [
6227
- {
6228
- "kind": "field",
6229
- "name": "template"
6230
- },
6231
- {
6232
- "kind": "field",
6233
- "name": "inline",
6234
- "type": {
6235
- "text": "boolean"
6236
- },
6237
- "default": "false"
6238
- },
6239
- {
6240
- "kind": "field",
6241
- "name": "parametersDetails",
6242
- "type": {
6243
- "text": "object"
6244
- },
6245
- "privacy": "private",
6246
- "default": "{}"
6247
- },
6248
- {
6249
- "kind": "field",
6250
- "name": "isSubmitting",
6251
- "type": {
6252
- "text": "boolean"
6253
- },
6254
- "privacy": "private",
6255
- "default": "false"
6256
- },
6257
- {
6258
- "kind": "field",
6259
- "name": "parametersOperators",
6260
- "type": {
6261
- "text": "object"
6262
- },
6263
- "default": "{}"
6264
- },
6265
- {
6266
- "kind": "field",
6267
- "name": "subscribeDisabled",
6268
- "type": {
6269
- "text": "boolean"
6270
- },
6271
- "default": "true"
6272
- },
6273
- {
6274
- "kind": "field",
6275
- "name": "ruleService",
6276
- "type": {
6277
- "text": "RuleService"
6278
- }
6279
- },
6280
- {
6281
- "kind": "method",
6282
- "name": "templateChanged"
6283
- },
6284
- {
6285
- "kind": "method",
6286
- "name": "usesAutoSubmit",
6287
- "return": {
6288
- "type": {
6289
- "text": "boolean"
6290
- }
6291
- }
6292
- },
6293
- {
6294
- "kind": "method",
6295
- "name": "requiresManualSubscribe",
6296
- "return": {
6297
- "type": {
6298
- "text": "boolean"
6299
- }
6300
- }
6301
- },
6302
- {
6303
- "kind": "method",
6304
- "name": "parameterEdit",
6305
- "parameters": [
6306
- {
6307
- "name": "value",
6308
- "type": {
6309
- "text": "any"
6310
- }
6311
- }
6312
- ]
6313
- },
6314
- {
6315
- "kind": "method",
6316
- "name": "autoSubscribe",
6317
- "privacy": "private"
6318
- },
6319
- {
6320
- "kind": "method",
6321
- "name": "verifySubscribe"
6322
- },
6323
- {
6324
- "kind": "field",
6325
- "name": "isFirstElement"
6326
- },
6327
- {
6328
- "kind": "method",
6329
- "name": "subscribeTemplate"
6330
- },
6331
- {
6332
- "kind": "method",
6333
- "name": "cancelSubscribe"
6334
- },
6335
- {
6336
- "kind": "field",
6337
- "name": "createParametersOperatorMap"
6338
- }
6339
- ],
6340
- "events": [
6341
- {
6342
- "description": "Fired when a template subscription is created",
6343
- "name": "templateSubscribed"
6344
- },
6345
- {
6346
- "description": "Fired when inline parameter entry is cancelled",
6347
- "name": "subscribeCancelled"
6348
- }
6349
- ],
6350
- "attributes": [
6351
- {
6352
- "name": "template",
6353
- "fieldName": "template"
6354
- },
6355
- {
6356
- "type": {
6357
- "text": "boolean"
6358
- },
6359
- "default": "false",
6360
- "fieldName": "inline"
6361
- }
6362
- ],
6363
- "superclass": {
6364
- "name": "GenesisElement",
6365
- "package": "@genesislcap/web-core"
6366
- },
6367
- "tagName": "inbox-subscription",
6368
- "customElement": true
6369
- }
6370
- ],
6371
- "exports": [
6372
- {
6373
- "kind": "js",
6374
- "name": "InboxSubscription",
6375
- "declaration": {
6376
- "name": "InboxSubscription",
6377
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts"
6378
- }
6379
- },
6380
- {
6381
- "kind": "custom-element-definition",
6382
- "name": "inbox-subscription",
6383
- "declaration": {
6384
- "name": "InboxSubscription",
6385
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts"
6386
- }
6387
- }
6388
- ]
6389
- },
6390
- {
6391
- "kind": "javascript-module",
6392
- "path": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts",
6427
+ "path": "src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts",
6393
6428
  "declarations": [
6394
6429
  {
6395
6430
  "kind": "class",
@@ -6422,41 +6457,6 @@
6422
6457
  }
6423
6458
  ]
6424
6459
  },
6425
- {
6426
- "kind": "javascript-module",
6427
- "path": "src/components/foundation-notification-dashboard/components/routes/route-management.ts",
6428
- "declarations": [
6429
- {
6430
- "kind": "class",
6431
- "description": "",
6432
- "name": "RouteManagement",
6433
- "superclass": {
6434
- "name": "GenesisElement",
6435
- "package": "@genesislcap/web-core"
6436
- },
6437
- "tagName": "route-management",
6438
- "customElement": true
6439
- }
6440
- ],
6441
- "exports": [
6442
- {
6443
- "kind": "js",
6444
- "name": "RouteManagement",
6445
- "declaration": {
6446
- "name": "RouteManagement",
6447
- "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
6448
- }
6449
- },
6450
- {
6451
- "kind": "custom-element-definition",
6452
- "name": "route-management",
6453
- "declaration": {
6454
- "name": "RouteManagement",
6455
- "module": "src/components/foundation-notification-dashboard/components/routes/route-management.ts"
6456
- }
6457
- }
6458
- ]
6459
- },
6460
6460
  {
6461
6461
  "kind": "javascript-module",
6462
6462
  "path": "src/components/foundation-notification-dashboard/components/rules/columns.ts",
@@ -8338,39 +8338,39 @@
8338
8338
  },
8339
8339
  {
8340
8340
  "kind": "javascript-module",
8341
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
8341
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
8342
8342
  "declarations": [
8343
8343
  {
8344
8344
  "kind": "variable",
8345
- "name": "RuleConditionBuilderTemplate",
8346
- "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`"
8345
+ "name": "RuleConditionGroupTemplate",
8346
+ "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`"
8347
8347
  }
8348
8348
  ],
8349
8349
  "exports": [
8350
8350
  {
8351
8351
  "kind": "js",
8352
- "name": "RuleConditionBuilderTemplate",
8352
+ "name": "RuleConditionGroupTemplate",
8353
8353
  "declaration": {
8354
- "name": "RuleConditionBuilderTemplate",
8355
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
8354
+ "name": "RuleConditionGroupTemplate",
8355
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
8356
8356
  }
8357
8357
  }
8358
8358
  ]
8359
8359
  },
8360
8360
  {
8361
8361
  "kind": "javascript-module",
8362
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
8362
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
8363
8363
  "declarations": [
8364
8364
  {
8365
8365
  "kind": "class",
8366
- "description": "Condition builder for notification rule criteria.",
8367
- "name": "RuleConditionBuilder",
8366
+ "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.",
8367
+ "name": "RuleConditionGroup",
8368
8368
  "members": [
8369
8369
  {
8370
8370
  "kind": "field",
8371
- "name": "condition",
8371
+ "name": "node",
8372
8372
  "type": {
8373
- "text": "ConditionBuilderEntity"
8373
+ "text": "ConditionGroupEntity"
8374
8374
  }
8375
8375
  },
8376
8376
  {
@@ -8398,66 +8398,15 @@
8398
8398
  },
8399
8399
  {
8400
8400
  "kind": "field",
8401
- "name": "leftValue",
8401
+ "name": "groupChildren",
8402
8402
  "type": {
8403
- "text": "string"
8403
+ "text": "ConditionNode[]"
8404
8404
  },
8405
- "default": "null"
8405
+ "default": "[]"
8406
8406
  },
8407
8407
  {
8408
- "kind": "field",
8409
- "name": "leftValueItems",
8410
- "type": {
8411
- "text": "Array<any>"
8412
- },
8413
- "default": "[]"
8414
- },
8415
- {
8416
- "kind": "field",
8417
- "name": "logicalOperator",
8418
- "type": {
8419
- "text": "string"
8420
- },
8421
- "default": "null"
8422
- },
8423
- {
8424
- "kind": "field",
8425
- "name": "rightCriteria",
8426
- "type": {
8427
- "text": "string"
8428
- }
8429
- },
8430
- {
8431
- "kind": "field",
8432
- "name": "rightValueText",
8433
- "type": {
8434
- "text": "string"
8435
- },
8436
- "default": "null"
8437
- },
8438
- {
8439
- "kind": "field",
8440
- "name": "rightValueSelect",
8441
- "type": {
8442
- "text": "string"
8443
- },
8444
- "default": "null"
8445
- },
8446
- {
8447
- "kind": "field",
8448
- "name": "rightValueMultiSelect",
8449
- "type": {
8450
- "text": "string[]"
8451
- },
8452
- "default": "[]"
8453
- },
8454
- {
8455
- "kind": "method",
8456
- "name": "deleteCondition"
8457
- },
8458
- {
8459
- "kind": "method",
8460
- "name": "conditionChanged"
8408
+ "kind": "method",
8409
+ "name": "nodeChanged"
8461
8410
  },
8462
8411
  {
8463
8412
  "kind": "method",
@@ -8465,125 +8414,48 @@
8465
8414
  },
8466
8415
  {
8467
8416
  "kind": "method",
8468
- "name": "fieldsChanged"
8469
- },
8470
- {
8471
- "kind": "method",
8472
- "name": "assignLeftValue",
8473
- "privacy": "private"
8474
- },
8475
- {
8476
- "kind": "method",
8477
- "name": "assignRightValue"
8478
- },
8479
- {
8480
- "kind": "method",
8481
- "name": "getRightCriteria",
8482
- "return": {
8483
- "type": {
8484
- "text": "Array<any>"
8485
- }
8486
- }
8487
- },
8488
- {
8489
- "kind": "method",
8490
- "name": "getLogicalOperators",
8491
- "return": {
8492
- "type": {
8493
- "text": "Array<any>"
8494
- }
8495
- }
8496
- },
8497
- {
8498
- "kind": "method",
8499
- "name": "leftValueChanged"
8500
- },
8501
- {
8502
- "kind": "method",
8503
- "name": "logicalOperatorChanged"
8504
- },
8505
- {
8506
- "kind": "method",
8507
- "name": "rightCriteriaChanged"
8508
- },
8509
- {
8510
- "kind": "method",
8511
- "name": "clearRightValueText",
8512
- "privacy": "private"
8513
- },
8514
- {
8515
- "kind": "method",
8516
- "name": "clearRightValueSelect",
8517
- "privacy": "private"
8518
- },
8519
- {
8520
- "kind": "method",
8521
- "name": "rightValueTextChanged"
8522
- },
8523
- {
8524
- "kind": "method",
8525
- "name": "rightValueSelectChanged"
8526
- },
8527
- {
8528
- "kind": "method",
8529
- "name": "rightValueMultiSelectChanged"
8417
+ "name": "newCondition"
8530
8418
  },
8531
8419
  {
8532
8420
  "kind": "method",
8533
- "name": "getEnumValues",
8534
- "return": {
8535
- "type": {
8536
- "text": "string[]"
8537
- }
8538
- }
8421
+ "name": "newGroup"
8539
8422
  },
8540
8423
  {
8541
8424
  "kind": "method",
8542
- "name": "convertDateTime",
8425
+ "name": "editChild",
8543
8426
  "parameters": [
8544
8427
  {
8545
- "name": "dateTimeStr",
8428
+ "name": "_editedChild",
8546
8429
  "type": {
8547
- "text": "string"
8430
+ "text": "ConditionNode"
8548
8431
  }
8549
8432
  }
8550
8433
  ]
8551
8434
  },
8552
8435
  {
8553
8436
  "kind": "method",
8554
- "name": "convertLongForDatePicker",
8437
+ "name": "deleteChild",
8555
8438
  "parameters": [
8556
8439
  {
8557
- "name": "value",
8558
- "type": {
8559
- "text": "number"
8560
- }
8561
- },
8562
- {
8563
- "name": "time",
8564
- "default": "false",
8440
+ "name": "deletedChild",
8565
8441
  "type": {
8566
- "text": "boolean"
8442
+ "text": "ConditionNode"
8567
8443
  }
8568
8444
  }
8569
8445
  ]
8570
8446
  },
8571
8447
  {
8572
8448
  "kind": "method",
8573
- "name": "getAllFields"
8574
- },
8575
- {
8576
- "kind": "method",
8577
- "name": "getApplicableFields"
8449
+ "name": "deleteSelf"
8578
8450
  }
8579
8451
  ],
8580
8452
  "events": [
8581
8453
  {
8582
- "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
8454
+ "description": "Fired when this whole group should be removed",
8583
8455
  "name": "delete"
8584
8456
  },
8585
8457
  {
8586
- "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
8458
+ "description": "Fired when anything inside this group changes",
8587
8459
  "name": "edit"
8588
8460
  }
8589
8461
  ],
@@ -8591,70 +8463,64 @@
8591
8463
  "name": "GenesisElement",
8592
8464
  "package": "@genesislcap/web-core"
8593
8465
  },
8594
- "tagName": "rule-condition-builder",
8466
+ "tagName": "rule-condition-group",
8595
8467
  "customElement": true
8596
8468
  }
8597
8469
  ],
8598
8470
  "exports": [
8599
8471
  {
8600
8472
  "kind": "js",
8601
- "name": "RuleConditionBuilder",
8473
+ "name": "RuleConditionGroup",
8602
8474
  "declaration": {
8603
- "name": "RuleConditionBuilder",
8604
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
8475
+ "name": "RuleConditionGroup",
8476
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8605
8477
  }
8606
8478
  },
8607
8479
  {
8608
8480
  "kind": "custom-element-definition",
8609
- "name": "rule-condition-builder",
8481
+ "name": "rule-condition-group",
8610
8482
  "declaration": {
8611
- "name": "RuleConditionBuilder",
8612
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
8483
+ "name": "RuleConditionGroup",
8484
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8613
8485
  }
8614
8486
  }
8615
8487
  ]
8616
8488
  },
8617
8489
  {
8618
8490
  "kind": "javascript-module",
8619
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts",
8620
- "declarations": [],
8621
- "exports": []
8622
- },
8623
- {
8624
- "kind": "javascript-module",
8625
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
8491
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
8626
8492
  "declarations": [
8627
8493
  {
8628
8494
  "kind": "variable",
8629
- "name": "RuleConditionGroupTemplate",
8630
- "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`"
8495
+ "name": "RuleConditionBuilderTemplate",
8496
+ "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`"
8631
8497
  }
8632
8498
  ],
8633
8499
  "exports": [
8634
8500
  {
8635
8501
  "kind": "js",
8636
- "name": "RuleConditionGroupTemplate",
8502
+ "name": "RuleConditionBuilderTemplate",
8637
8503
  "declaration": {
8638
- "name": "RuleConditionGroupTemplate",
8639
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
8504
+ "name": "RuleConditionBuilderTemplate",
8505
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
8640
8506
  }
8641
8507
  }
8642
8508
  ]
8643
8509
  },
8644
8510
  {
8645
8511
  "kind": "javascript-module",
8646
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
8512
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
8647
8513
  "declarations": [
8648
8514
  {
8649
8515
  "kind": "class",
8650
- "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.",
8651
- "name": "RuleConditionGroup",
8516
+ "description": "Condition builder for notification rule criteria.",
8517
+ "name": "RuleConditionBuilder",
8652
8518
  "members": [
8653
8519
  {
8654
8520
  "kind": "field",
8655
- "name": "node",
8521
+ "name": "condition",
8656
8522
  "type": {
8657
- "text": "ConditionGroupEntity"
8523
+ "text": "ConditionBuilderEntity"
8658
8524
  }
8659
8525
  },
8660
8526
  {
@@ -8682,308 +8548,228 @@
8682
8548
  },
8683
8549
  {
8684
8550
  "kind": "field",
8685
- "name": "groupChildren",
8551
+ "name": "leftValue",
8686
8552
  "type": {
8687
- "text": "ConditionNode[]"
8553
+ "text": "string"
8688
8554
  },
8689
- "default": "[]"
8690
- },
8691
- {
8692
- "kind": "method",
8693
- "name": "nodeChanged"
8694
- },
8695
- {
8696
- "kind": "method",
8697
- "name": "joinOperatorChanged"
8698
- },
8699
- {
8700
- "kind": "method",
8701
- "name": "newCondition"
8702
- },
8703
- {
8704
- "kind": "method",
8705
- "name": "newGroup"
8706
- },
8707
- {
8708
- "kind": "method",
8709
- "name": "editChild",
8710
- "parameters": [
8711
- {
8712
- "name": "_editedChild",
8713
- "type": {
8714
- "text": "ConditionNode"
8715
- }
8716
- }
8717
- ]
8718
- },
8719
- {
8720
- "kind": "method",
8721
- "name": "deleteChild",
8722
- "parameters": [
8723
- {
8724
- "name": "deletedChild",
8725
- "type": {
8726
- "text": "ConditionNode"
8727
- }
8728
- }
8729
- ]
8730
- },
8731
- {
8732
- "kind": "method",
8733
- "name": "deleteSelf"
8734
- }
8735
- ],
8736
- "events": [
8737
- {
8738
- "description": "Fired when this whole group should be removed",
8739
- "name": "delete"
8555
+ "default": "null"
8740
8556
  },
8741
- {
8742
- "description": "Fired when anything inside this group changes",
8743
- "name": "edit"
8744
- }
8745
- ],
8746
- "superclass": {
8747
- "name": "GenesisElement",
8748
- "package": "@genesislcap/web-core"
8749
- },
8750
- "tagName": "rule-condition-group",
8751
- "customElement": true
8752
- }
8753
- ],
8754
- "exports": [
8755
- {
8756
- "kind": "js",
8757
- "name": "RuleConditionGroup",
8758
- "declaration": {
8759
- "name": "RuleConditionGroup",
8760
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8761
- }
8762
- },
8763
- {
8764
- "kind": "custom-element-definition",
8765
- "name": "rule-condition-group",
8766
- "declaration": {
8767
- "name": "RuleConditionGroup",
8768
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8769
- }
8770
- }
8771
- ]
8772
- },
8773
- {
8774
- "kind": "javascript-module",
8775
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
8776
- "declarations": [
8777
- {
8778
- "kind": "variable",
8779
- "name": "ParameterBuilderStyles",
8780
- "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`"
8781
- }
8782
- ],
8783
- "exports": [
8784
- {
8785
- "kind": "js",
8786
- "name": "ParameterBuilderStyles",
8787
- "declaration": {
8788
- "name": "ParameterBuilderStyles",
8789
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
8790
- }
8791
- }
8792
- ]
8793
- },
8794
- {
8795
- "kind": "javascript-module",
8796
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
8797
- "declarations": [
8798
- {
8799
- "kind": "variable",
8800
- "name": "ParameterBuilderTemplate",
8801
- "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`"
8802
- }
8803
- ],
8804
- "exports": [
8805
- {
8806
- "kind": "js",
8807
- "name": "ParameterBuilderTemplate",
8808
- "declaration": {
8809
- "name": "ParameterBuilderTemplate",
8810
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
8811
- }
8812
- }
8813
- ]
8814
- },
8815
- {
8816
- "kind": "javascript-module",
8817
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
8818
- "declarations": [
8819
- {
8820
- "kind": "class",
8821
- "description": "Parameter builder for notification templates.",
8822
- "name": "ParameterBuilder",
8823
- "members": [
8824
8557
  {
8825
8558
  "kind": "field",
8826
- "name": "parameter",
8559
+ "name": "leftValueItems",
8827
8560
  "type": {
8828
- "text": "ParameterBuilderEntity"
8829
- }
8561
+ "text": "Array<any>"
8562
+ },
8563
+ "default": "[]"
8830
8564
  },
8831
8565
  {
8832
8566
  "kind": "field",
8833
- "name": "name",
8567
+ "name": "logicalOperator",
8834
8568
  "type": {
8835
8569
  "text": "string"
8836
- }
8570
+ },
8571
+ "default": "null"
8837
8572
  },
8838
8573
  {
8839
8574
  "kind": "field",
8840
- "name": "label",
8575
+ "name": "rightCriteria",
8841
8576
  "type": {
8842
8577
  "text": "string"
8843
8578
  }
8844
8579
  },
8845
8580
  {
8846
8581
  "kind": "field",
8847
- "name": "type",
8582
+ "name": "rightValueText",
8848
8583
  "type": {
8849
8584
  "text": "string"
8850
- }
8585
+ },
8586
+ "default": "null"
8851
8587
  },
8852
8588
  {
8853
8589
  "kind": "field",
8854
- "name": "sourceType",
8590
+ "name": "rightValueSelect",
8855
8591
  "type": {
8856
8592
  "text": "string"
8857
- }
8593
+ },
8594
+ "default": "null"
8858
8595
  },
8859
8596
  {
8860
8597
  "kind": "field",
8861
- "name": "sourceSelected",
8598
+ "name": "rightValueMultiSelect",
8862
8599
  "type": {
8863
- "text": "string"
8864
- }
8600
+ "text": "string[]"
8601
+ },
8602
+ "default": "[]"
8865
8603
  },
8866
8604
  {
8867
- "kind": "field",
8868
- "name": "sourceTyped",
8869
- "type": {
8870
- "text": "string"
8871
- }
8605
+ "kind": "method",
8606
+ "name": "deleteCondition"
8872
8607
  },
8873
8608
  {
8874
- "kind": "field",
8875
- "name": "sourceTextField",
8876
- "type": {
8877
- "text": "TextField"
8609
+ "kind": "method",
8610
+ "name": "conditionChanged"
8611
+ },
8612
+ {
8613
+ "kind": "method",
8614
+ "name": "joinOperatorChanged"
8615
+ },
8616
+ {
8617
+ "kind": "method",
8618
+ "name": "fieldsChanged"
8619
+ },
8620
+ {
8621
+ "kind": "method",
8622
+ "name": "assignLeftValue",
8623
+ "privacy": "private"
8624
+ },
8625
+ {
8626
+ "kind": "method",
8627
+ "name": "assignRightValue"
8628
+ },
8629
+ {
8630
+ "kind": "method",
8631
+ "name": "getRightCriteria",
8632
+ "return": {
8633
+ "type": {
8634
+ "text": "Array<any>"
8635
+ }
8878
8636
  }
8879
8637
  },
8880
8638
  {
8881
- "kind": "field",
8882
- "name": "sourceSelect",
8883
- "type": {
8884
- "text": "Select"
8639
+ "kind": "method",
8640
+ "name": "getLogicalOperators",
8641
+ "return": {
8642
+ "type": {
8643
+ "text": "Array<any>"
8644
+ }
8885
8645
  }
8886
8646
  },
8887
8647
  {
8888
- "kind": "field",
8889
- "name": "reqRepItems",
8890
- "type": {
8891
- "text": "array"
8892
- },
8893
- "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
8648
+ "kind": "method",
8649
+ "name": "leftValueChanged"
8894
8650
  },
8895
8651
  {
8896
8652
  "kind": "method",
8897
- "name": "deleteParameter"
8653
+ "name": "logicalOperatorChanged"
8898
8654
  },
8899
8655
  {
8900
8656
  "kind": "method",
8901
- "name": "parameterChanged"
8657
+ "name": "rightCriteriaChanged"
8902
8658
  },
8903
8659
  {
8904
8660
  "kind": "method",
8905
- "name": "nameChanged"
8661
+ "name": "clearRightValueText",
8662
+ "privacy": "private"
8906
8663
  },
8907
8664
  {
8908
8665
  "kind": "method",
8909
- "name": "labelChanged"
8666
+ "name": "clearRightValueSelect",
8667
+ "privacy": "private"
8910
8668
  },
8911
8669
  {
8912
8670
  "kind": "method",
8913
- "name": "typeChanged"
8671
+ "name": "rightValueTextChanged"
8914
8672
  },
8915
8673
  {
8916
8674
  "kind": "method",
8917
- "name": "sourceTypeChanged"
8675
+ "name": "rightValueSelectChanged"
8918
8676
  },
8919
8677
  {
8920
8678
  "kind": "method",
8921
- "name": "sourceSelectedChanged"
8679
+ "name": "rightValueMultiSelectChanged"
8922
8680
  },
8923
8681
  {
8924
8682
  "kind": "method",
8925
- "name": "sourceTypedChanged"
8683
+ "name": "getEnumValues",
8684
+ "return": {
8685
+ "type": {
8686
+ "text": "string[]"
8687
+ }
8688
+ }
8926
8689
  },
8927
8690
  {
8928
8691
  "kind": "method",
8929
- "name": "genericChanged",
8930
- "privacy": "private",
8692
+ "name": "convertDateTime",
8931
8693
  "parameters": [
8932
8694
  {
8933
- "name": "parameterAttribute"
8695
+ "name": "dateTimeStr",
8696
+ "type": {
8697
+ "text": "string"
8698
+ }
8699
+ }
8700
+ ]
8701
+ },
8702
+ {
8703
+ "kind": "method",
8704
+ "name": "convertLongForDatePicker",
8705
+ "parameters": [
8706
+ {
8707
+ "name": "value",
8708
+ "type": {
8709
+ "text": "number"
8710
+ }
8934
8711
  },
8935
8712
  {
8936
- "name": "value"
8713
+ "name": "time",
8714
+ "default": "false",
8715
+ "type": {
8716
+ "text": "boolean"
8717
+ }
8937
8718
  }
8938
8719
  ]
8720
+ },
8721
+ {
8722
+ "kind": "method",
8723
+ "name": "getAllFields"
8724
+ },
8725
+ {
8726
+ "kind": "method",
8727
+ "name": "getApplicableFields"
8939
8728
  }
8940
8729
  ],
8941
8730
  "events": [
8942
8731
  {
8943
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
8732
+ "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
8944
8733
  "name": "delete"
8945
8734
  },
8946
8735
  {
8947
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
8736
+ "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
8948
8737
  "name": "edit"
8949
8738
  }
8950
8739
  ],
8951
- "attributes": [
8952
- {
8953
- "name": "parameter",
8954
- "type": {
8955
- "text": "ParameterBuilderEntity"
8956
- },
8957
- "fieldName": "parameter"
8958
- }
8959
- ],
8960
8740
  "superclass": {
8961
8741
  "name": "GenesisElement",
8962
8742
  "package": "@genesislcap/web-core"
8963
8743
  },
8964
- "tagName": "parameter-builder",
8744
+ "tagName": "rule-condition-builder",
8965
8745
  "customElement": true
8966
8746
  }
8967
8747
  ],
8968
8748
  "exports": [
8969
8749
  {
8970
8750
  "kind": "js",
8971
- "name": "ParameterBuilder",
8751
+ "name": "RuleConditionBuilder",
8972
8752
  "declaration": {
8973
- "name": "ParameterBuilder",
8974
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
8753
+ "name": "RuleConditionBuilder",
8754
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
8975
8755
  }
8976
8756
  },
8977
8757
  {
8978
8758
  "kind": "custom-element-definition",
8979
- "name": "parameter-builder",
8759
+ "name": "rule-condition-builder",
8980
8760
  "declaration": {
8981
- "name": "ParameterBuilder",
8982
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
8761
+ "name": "RuleConditionBuilder",
8762
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
8983
8763
  }
8984
8764
  }
8985
8765
  ]
8986
8766
  },
8767
+ {
8768
+ "kind": "javascript-module",
8769
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts",
8770
+ "declarations": [],
8771
+ "exports": []
8772
+ },
8987
8773
  {
8988
8774
  "kind": "javascript-module",
8989
8775
  "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
@@ -9276,6 +9062,220 @@
9276
9062
  }
9277
9063
  ]
9278
9064
  },
9065
+ {
9066
+ "kind": "javascript-module",
9067
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
9068
+ "declarations": [
9069
+ {
9070
+ "kind": "variable",
9071
+ "name": "ParameterBuilderStyles",
9072
+ "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`"
9073
+ }
9074
+ ],
9075
+ "exports": [
9076
+ {
9077
+ "kind": "js",
9078
+ "name": "ParameterBuilderStyles",
9079
+ "declaration": {
9080
+ "name": "ParameterBuilderStyles",
9081
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
9082
+ }
9083
+ }
9084
+ ]
9085
+ },
9086
+ {
9087
+ "kind": "javascript-module",
9088
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
9089
+ "declarations": [
9090
+ {
9091
+ "kind": "variable",
9092
+ "name": "ParameterBuilderTemplate",
9093
+ "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`"
9094
+ }
9095
+ ],
9096
+ "exports": [
9097
+ {
9098
+ "kind": "js",
9099
+ "name": "ParameterBuilderTemplate",
9100
+ "declaration": {
9101
+ "name": "ParameterBuilderTemplate",
9102
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
9103
+ }
9104
+ }
9105
+ ]
9106
+ },
9107
+ {
9108
+ "kind": "javascript-module",
9109
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
9110
+ "declarations": [
9111
+ {
9112
+ "kind": "class",
9113
+ "description": "Parameter builder for notification templates.",
9114
+ "name": "ParameterBuilder",
9115
+ "members": [
9116
+ {
9117
+ "kind": "field",
9118
+ "name": "parameter",
9119
+ "type": {
9120
+ "text": "ParameterBuilderEntity"
9121
+ }
9122
+ },
9123
+ {
9124
+ "kind": "field",
9125
+ "name": "name",
9126
+ "type": {
9127
+ "text": "string"
9128
+ }
9129
+ },
9130
+ {
9131
+ "kind": "field",
9132
+ "name": "label",
9133
+ "type": {
9134
+ "text": "string"
9135
+ }
9136
+ },
9137
+ {
9138
+ "kind": "field",
9139
+ "name": "type",
9140
+ "type": {
9141
+ "text": "string"
9142
+ }
9143
+ },
9144
+ {
9145
+ "kind": "field",
9146
+ "name": "sourceType",
9147
+ "type": {
9148
+ "text": "string"
9149
+ }
9150
+ },
9151
+ {
9152
+ "kind": "field",
9153
+ "name": "sourceSelected",
9154
+ "type": {
9155
+ "text": "string"
9156
+ }
9157
+ },
9158
+ {
9159
+ "kind": "field",
9160
+ "name": "sourceTyped",
9161
+ "type": {
9162
+ "text": "string"
9163
+ }
9164
+ },
9165
+ {
9166
+ "kind": "field",
9167
+ "name": "sourceTextField",
9168
+ "type": {
9169
+ "text": "TextField"
9170
+ }
9171
+ },
9172
+ {
9173
+ "kind": "field",
9174
+ "name": "sourceSelect",
9175
+ "type": {
9176
+ "text": "Select"
9177
+ }
9178
+ },
9179
+ {
9180
+ "kind": "field",
9181
+ "name": "reqRepItems",
9182
+ "type": {
9183
+ "text": "array"
9184
+ },
9185
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
9186
+ },
9187
+ {
9188
+ "kind": "method",
9189
+ "name": "deleteParameter"
9190
+ },
9191
+ {
9192
+ "kind": "method",
9193
+ "name": "parameterChanged"
9194
+ },
9195
+ {
9196
+ "kind": "method",
9197
+ "name": "nameChanged"
9198
+ },
9199
+ {
9200
+ "kind": "method",
9201
+ "name": "labelChanged"
9202
+ },
9203
+ {
9204
+ "kind": "method",
9205
+ "name": "typeChanged"
9206
+ },
9207
+ {
9208
+ "kind": "method",
9209
+ "name": "sourceTypeChanged"
9210
+ },
9211
+ {
9212
+ "kind": "method",
9213
+ "name": "sourceSelectedChanged"
9214
+ },
9215
+ {
9216
+ "kind": "method",
9217
+ "name": "sourceTypedChanged"
9218
+ },
9219
+ {
9220
+ "kind": "method",
9221
+ "name": "genericChanged",
9222
+ "privacy": "private",
9223
+ "parameters": [
9224
+ {
9225
+ "name": "parameterAttribute"
9226
+ },
9227
+ {
9228
+ "name": "value"
9229
+ }
9230
+ ]
9231
+ }
9232
+ ],
9233
+ "events": [
9234
+ {
9235
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
9236
+ "name": "delete"
9237
+ },
9238
+ {
9239
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
9240
+ "name": "edit"
9241
+ }
9242
+ ],
9243
+ "attributes": [
9244
+ {
9245
+ "name": "parameter",
9246
+ "type": {
9247
+ "text": "ParameterBuilderEntity"
9248
+ },
9249
+ "fieldName": "parameter"
9250
+ }
9251
+ ],
9252
+ "superclass": {
9253
+ "name": "GenesisElement",
9254
+ "package": "@genesislcap/web-core"
9255
+ },
9256
+ "tagName": "parameter-builder",
9257
+ "customElement": true
9258
+ }
9259
+ ],
9260
+ "exports": [
9261
+ {
9262
+ "kind": "js",
9263
+ "name": "ParameterBuilder",
9264
+ "declaration": {
9265
+ "name": "ParameterBuilder",
9266
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
9267
+ }
9268
+ },
9269
+ {
9270
+ "kind": "custom-element-definition",
9271
+ "name": "parameter-builder",
9272
+ "declaration": {
9273
+ "name": "ParameterBuilder",
9274
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
9275
+ }
9276
+ }
9277
+ ]
9278
+ },
9279
9279
  {
9280
9280
  "kind": "javascript-module",
9281
9281
  "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",