@genesislcap/pbc-notify-ui 15.18.0 → 15.19.0-DCD-4786.3

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 (103) hide show
  1. package/dist/custom-elements.json +89 -89
  2. package/package.json +23 -24
  3. package/api-extractor.json +0 -4
  4. package/dist/dts/utils/alert-sound.test.d.ts +0 -2
  5. package/dist/dts/utils/alert-sound.test.d.ts.map +0 -1
  6. package/dist/esm/utils/alert-sound.test.js +0 -25
  7. package/dist/tsconfig.tsbuildinfo +0 -1
  8. package/src/components/components.ts +0 -64
  9. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts +0 -30
  10. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts +0 -16
  11. package/src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts +0 -68
  12. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts +0 -18
  13. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts +0 -22
  14. package/src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.ts +0 -43
  15. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts +0 -79
  16. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts +0 -81
  17. package/src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts +0 -130
  18. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.styles.ts +0 -39
  19. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.template.ts +0 -96
  20. package/src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.ts +0 -135
  21. package/src/components/foundation-inbox/inbox-base/inbox-base.ts +0 -628
  22. package/src/components/foundation-inbox/inbox.styles.ts +0 -474
  23. package/src/components/foundation-inbox/inbox.template.ts +0 -393
  24. package/src/components/foundation-inbox/inbox.ts +0 -26
  25. package/src/components/foundation-inbox/inbox.types.ts +0 -93
  26. package/src/components/foundation-inbox/inbox.utils.ts +0 -37
  27. package/src/components/foundation-notification-dashboard/alert-sound-attachment.ts +0 -283
  28. package/src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts +0 -96
  29. package/src/components/foundation-notification-dashboard/components/routes/route-management.ts +0 -60
  30. package/src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts +0 -58
  31. package/src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts +0 -68
  32. package/src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts +0 -43
  33. package/src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts +0 -48
  34. package/src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts +0 -73
  35. package/src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts +0 -48
  36. package/src/components/foundation-notification-dashboard/components/rules/columns.ts +0 -48
  37. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts +0 -183
  38. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts +0 -313
  39. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts +0 -4
  40. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts +0 -74
  41. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts +0 -82
  42. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts +0 -195
  43. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts +0 -274
  44. package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.ts +0 -37
  45. package/src/components/foundation-notification-dashboard/components/rules/rule-management.ts +0 -76
  46. package/src/components/foundation-notification-dashboard/components/templates/columns.ts +0 -48
  47. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts +0 -59
  48. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts +0 -95
  49. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts +0 -129
  50. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts +0 -150
  51. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts +0 -304
  52. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts +0 -76
  53. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts +0 -81
  54. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts +0 -176
  55. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts +0 -333
  56. package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.types.ts +0 -39
  57. package/src/components/foundation-notification-dashboard/components/templates/template-management.ts +0 -79
  58. package/src/components/foundation-notification-dashboard/index.ts +0 -1
  59. package/src/components/foundation-notification-dashboard/notification-dashboard.styles.ts +0 -21
  60. package/src/components/foundation-notification-dashboard/notification-dashboard.tabs.ts +0 -35
  61. package/src/components/foundation-notification-dashboard/notification-dashboard.template.ts +0 -57
  62. package/src/components/foundation-notification-dashboard/notification-dashboard.ts +0 -40
  63. package/src/components/foundation-notification-dashboard/notification-dashboard.utils.ts +0 -779
  64. package/src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts +0 -190
  65. package/src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts +0 -202
  66. package/src/components/foundation-notification-dashboard/styles/management.styles.ts +0 -21
  67. package/src/components/foundation-notification-dashboard/types/expression-type.ts +0 -13
  68. package/src/components/foundation-notification-dashboard/types/logical-operator.ts +0 -18
  69. package/src/components/foundation-notification-dashboard/types/param-source-type.ts +0 -11
  70. package/src/components/foundation-notification-dashboard/types/param-type.ts +0 -13
  71. package/src/components/foundation-notification-dashboard/types/right-criteria.ts +0 -6
  72. package/src/components/foundation-notification-dashboard/types/rule-execution-strategy.ts +0 -6
  73. package/src/components/foundation-notification-dashboard/types/severity.ts +0 -13
  74. package/src/components/foundation-sounds/foundation-sounds-panel.styles.ts +0 -201
  75. package/src/components/foundation-sounds/foundation-sounds-panel.template.ts +0 -188
  76. package/src/components/foundation-sounds/foundation-sounds-panel.ts +0 -280
  77. package/src/components/foundation-sounds/foundation-sounds.styles.ts +0 -8
  78. package/src/components/foundation-sounds/foundation-sounds.ts +0 -222
  79. package/src/globals.d.ts +0 -7
  80. package/src/index.federated.ts +0 -1
  81. package/src/index.ts +0 -20
  82. package/src/notify.types.ts +0 -178
  83. package/src/sandbox.ts +0 -83
  84. package/src/services/alert.service.ts +0 -36
  85. package/src/services/inbox.service.ts +0 -153
  86. package/src/services/notify-route.service.ts +0 -177
  87. package/src/services/notify.service.ts +0 -21
  88. package/src/services/rule.service.ts +0 -165
  89. package/src/services/system.service.ts +0 -74
  90. package/src/services/template.service.ts +0 -71
  91. package/src/styles/scrollbar.styles.ts +0 -15
  92. package/src/utils/alert-sound.test.ts +0 -32
  93. package/src/utils/alert-sound.ts +0 -1135
  94. package/src/utils/eventDetail.ts +0 -5
  95. package/src/utils/gridConfig.ts +0 -14
  96. package/src/utils/humanize.ts +0 -14
  97. package/src/utils/icons.ts +0 -15
  98. package/src/utils/index.ts +0 -9
  99. package/src/utils/logger.ts +0 -3
  100. package/src/utils/notifyPermissions.ts +0 -6
  101. package/src/utils/toBoolean.ts +0 -7
  102. package/src/utils/updateArray.ts +0 -48
  103. package/tsconfig.json +0 -9
@@ -4229,6 +4229,95 @@
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
+ },
4232
4321
  {
4233
4322
  "kind": "javascript-module",
4234
4323
  "path": "src/components/foundation-notification-dashboard/types/expression-type.ts",
@@ -4829,95 +4918,6 @@
4829
4918
  }
4830
4919
  ]
4831
4920
  },
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",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-notify-ui",
3
3
  "description": "Genesis PBC Notify UI",
4
- "version": "15.18.0",
4
+ "version": "15.19.0-DCD-4786.3",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "workspaces": [
7
7
  "client"
@@ -81,36 +81,35 @@
81
81
  "@commitlint/cli": "^19.2.1",
82
82
  "@commitlint/config-conventional": "^19.1.0",
83
83
  "@commitlint/format": "^19.0.3",
84
- "@genesislcap/design-system-configurator": "15.18.0",
85
- "@genesislcap/eslint-config": "15.18.0",
86
- "@genesislcap/eslint-stylelint-builder": "15.18.0",
87
- "@genesislcap/foundation-testing": "15.18.0",
88
- "@genesislcap/genx": "15.18.0",
89
- "@genesislcap/prettier-config": "15.18.0",
90
- "@genesislcap/stylelint-config": "15.18.0",
91
- "@genesislcap/vite-builder": "15.18.0",
92
- "@genesislcap/webpack-builder": "15.18.0",
84
+ "@genesislcap/design-system-configurator": "15.19.0-DCD-4786.3",
85
+ "@genesislcap/eslint-config": "15.19.0-DCD-4786.3",
86
+ "@genesislcap/eslint-stylelint-builder": "15.19.0-DCD-4786.3",
87
+ "@genesislcap/foundation-testing": "15.19.0-DCD-4786.3",
88
+ "@genesislcap/genx": "15.19.0-DCD-4786.3",
89
+ "@genesislcap/prettier-config": "15.19.0-DCD-4786.3",
90
+ "@genesislcap/stylelint-config": "15.19.0-DCD-4786.3",
91
+ "@genesislcap/vite-builder": "15.19.0-DCD-4786.3",
92
+ "@genesislcap/webpack-builder": "15.19.0-DCD-4786.3",
93
93
  "dayjs": "^1.11.7"
94
94
  },
95
95
  "dependencies": {
96
- "@genesislcap/foundation-comms": "15.18.0",
97
- "@genesislcap/foundation-criteria": "15.18.0",
98
- "@genesislcap/foundation-entity-management": "15.18.0",
99
- "@genesislcap/foundation-forms": "15.18.0",
100
- "@genesislcap/foundation-layout": "15.18.0",
101
- "@genesislcap/foundation-logger": "15.18.0",
102
- "@genesislcap/foundation-notifications": "15.18.0",
103
- "@genesislcap/foundation-ui": "15.18.0",
104
- "@genesislcap/foundation-utils": "15.18.0",
105
- "@genesislcap/rapid-design-system": "15.18.0",
106
- "@genesislcap/rapid-grid-pro": "15.18.0",
107
- "@genesislcap/web-core": "15.18.0",
96
+ "@genesislcap/foundation-comms": "15.19.0-DCD-4786.3",
97
+ "@genesislcap/foundation-criteria": "15.19.0-DCD-4786.3",
98
+ "@genesislcap/foundation-entity-management": "15.19.0-DCD-4786.3",
99
+ "@genesislcap/foundation-forms": "15.19.0-DCD-4786.3",
100
+ "@genesislcap/foundation-layout": "15.19.0-DCD-4786.3",
101
+ "@genesislcap/foundation-logger": "15.19.0-DCD-4786.3",
102
+ "@genesislcap/foundation-notifications": "15.19.0-DCD-4786.3",
103
+ "@genesislcap/foundation-ui": "15.19.0-DCD-4786.3",
104
+ "@genesislcap/foundation-utils": "15.19.0-DCD-4786.3",
105
+ "@genesislcap/rapid-design-system": "15.19.0-DCD-4786.3",
106
+ "@genesislcap/rapid-grid-pro": "15.19.0-DCD-4786.3",
107
+ "@genesislcap/web-core": "15.19.0-DCD-4786.3",
108
108
  "lodash.debounce": "^4.0.8",
109
109
  "rxjs": "^7.5.4"
110
110
  },
111
111
  "publishConfig": {
112
112
  "access": "public"
113
113
  },
114
- "customElements": "dist/custom-elements.json",
115
- "gitHead": "a92013873774dbc7f67a32d37994f10777f86383"
114
+ "customElements": "dist/custom-elements.json"
116
115
  }
@@ -1,4 +0,0 @@
1
- {
2
- "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "../../../../api-extractor.json"
4
- }
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=alert-sound.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-sound.test.d.ts","sourceRoot":"","sources":["../../../src/utils/alert-sound.test.ts"],"names":[],"mappings":""}
@@ -1,25 +0,0 @@
1
- import { assert, createLogicSuite } from '@genesislcap/foundation-testing';
2
- import { textContainsWholeWord } from './alert-sound';
3
- const suite = createLogicSuite('alert-sound textContainsWholeWord');
4
- suite('matches a single whole word case-insensitively', () => {
5
- assert.ok(textContainsWholeWord('Please trade now', 'trade'));
6
- assert.ok(textContainsWholeWord('Please TRADE now', 'trade'));
7
- assert.not.ok(textContainsWholeWord('Please trader now', 'trade'));
8
- });
9
- suite('matches a multi-word phrase', () => {
10
- assert.ok(textContainsWholeWord('Risk limit breached today', 'limit breached'));
11
- assert.not.ok(textContainsWholeWord('Risk limit breach today', 'limit breached'));
12
- });
13
- suite('does not match empty or whitespace-only patterns', () => {
14
- assert.not.ok(textContainsWholeWord('anything', ''));
15
- assert.not.ok(textContainsWholeWord('anything', ' '));
16
- });
17
- suite('treats short codes as whole words (g1 vs g1h)', () => {
18
- assert.ok(textContainsWholeWord('test g1 test', 'g1'));
19
- assert.not.ok(textContainsWholeWord('test g1h test', 'g1'));
20
- });
21
- suite('matches patterns that start or end with punctuation', () => {
22
- assert.ok(textContainsWholeWord('cost $100 today', '$100'));
23
- assert.ok(textContainsWholeWord('status: FAILED!', 'FAILED!'));
24
- });
25
- suite.run();
@@ -1 +0,0 @@
1
- {"root":["../src/globals.d.ts","../src/index.federated.ts","../src/index.ts","../src/notify.types.ts","../src/sandbox.ts","../src/components/components.ts","../src/components/foundation-inbox/inbox.styles.ts","../src/components/foundation-inbox/inbox.template.ts","../src/components/foundation-inbox/inbox.ts","../src/components/foundation-inbox/inbox.types.ts","../src/components/foundation-inbox/inbox.utils.ts","../src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts","../src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts","../src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts","../src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts","../src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.template.ts","../src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.ts","../src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts","../src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts","../src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts","../src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.styles.ts","../src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.template.ts","../src/components/foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter.ts","../src/components/foundation-inbox/inbox-base/inbox-base.ts","../src/components/foundation-notification-dashboard/alert-sound-attachment.ts","../src/components/foundation-notification-dashboard/index.ts","../src/components/foundation-notification-dashboard/notification-dashboard.styles.ts","../src/components/foundation-notification-dashboard/notification-dashboard.tabs.ts","../src/components/foundation-notification-dashboard/notification-dashboard.template.ts","../src/components/foundation-notification-dashboard/notification-dashboard.ts","../src/components/foundation-notification-dashboard/notification-dashboard.utils.ts","../src/components/foundation-notification-dashboard/components/notify-audit/notify-audit-management.ts","../src/components/foundation-notification-dashboard/components/routes/route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts","../src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts","../src/components/foundation-notification-dashboard/components/rules/columns.ts","../src/components/foundation-notification-dashboard/components/rules/rule-management.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.types.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts","../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts","../src/components/foundation-notification-dashboard/components/templates/columns.ts","../src/components/foundation-notification-dashboard/components/templates/template-management.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.types.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts","../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts","../src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts","../src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts","../src/components/foundation-notification-dashboard/styles/management.styles.ts","../src/components/foundation-notification-dashboard/types/expression-type.ts","../src/components/foundation-notification-dashboard/types/logical-operator.ts","../src/components/foundation-notification-dashboard/types/param-source-type.ts","../src/components/foundation-notification-dashboard/types/param-type.ts","../src/components/foundation-notification-dashboard/types/right-criteria.ts","../src/components/foundation-notification-dashboard/types/rule-execution-strategy.ts","../src/components/foundation-notification-dashboard/types/severity.ts","../src/components/foundation-sounds/foundation-sounds-panel.styles.ts","../src/components/foundation-sounds/foundation-sounds-panel.template.ts","../src/components/foundation-sounds/foundation-sounds-panel.ts","../src/components/foundation-sounds/foundation-sounds.styles.ts","../src/components/foundation-sounds/foundation-sounds.ts","../src/services/alert.service.ts","../src/services/inbox.service.ts","../src/services/notify-route.service.ts","../src/services/notify.service.ts","../src/services/rule.service.ts","../src/services/system.service.ts","../src/services/template.service.ts","../src/styles/scrollbar.styles.ts","../src/utils/alert-sound.test.ts","../src/utils/alert-sound.ts","../src/utils/eventDetail.ts","../src/utils/gridConfig.ts","../src/utils/humanize.ts","../src/utils/icons.ts","../src/utils/index.ts","../src/utils/logger.ts","../src/utils/notifyPermissions.ts","../src/utils/toBoolean.ts","../src/utils/updateArray.ts"],"version":"5.9.2"}
@@ -1,64 +0,0 @@
1
- import { foundationLayoutComponents } from '@genesislcap/foundation-layout';
2
- import * as rapidDesignSystem from '@genesislcap/rapid-design-system';
3
- import { rapidGridComponents } from '@genesislcap/rapid-grid-pro';
4
- import { FoundationInboxCounter } from './foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter';
5
- import { InboxSubscription } from './foundation-inbox/components/inbox-subscription/inbox-subscription';
6
- import { RuleParameter } from './foundation-inbox/components/inbox-subscription/rule-parameter/rule-parameter';
7
- import { NotifyAuditManagement } from './foundation-notification-dashboard/components/notify-audit/notify-audit-management';
8
- import { RouteManagement } from './foundation-notification-dashboard/components/routes/route-management';
9
- import { EmailDistributionRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management';
10
- import { EmailUserRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/email-user-route-management';
11
- import { LogRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/log-route-management';
12
- import { MSTeamsRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management';
13
- import { ScreenRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/screen-route-management';
14
- import { SlackRouteManagement } from './foundation-notification-dashboard/components/routes/tabs/slack-route-management';
15
- import { RuleConditionBuilder } from './foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder';
16
- import { RuleConditionGroup } from './foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group';
17
- import { RuleDialog } from './foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog';
18
- import { RuleManagement } from './foundation-notification-dashboard/components/rules/rule-management';
19
- import { ParameterBuilder } from './foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder';
20
- import { TemplateConditionBuilder } from './foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder';
21
- import { TemplateConditionGroup } from './foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group';
22
- import { TemplateDialog } from './foundation-notification-dashboard/components/templates/template-dialog/template-dialog';
23
- import { TemplateManagement } from './foundation-notification-dashboard/components/templates/template-management';
24
- import { FoundationSounds } from './foundation-sounds/foundation-sounds';
25
- import { FoundationSoundsPanel } from './foundation-sounds/foundation-sounds-panel';
26
-
27
- // Components
28
-
29
- // #region Inbox
30
- FoundationInboxCounter;
31
- InboxSubscription;
32
- RuleParameter;
33
- FoundationSounds;
34
- FoundationSoundsPanel;
35
- // #endregion Inbox
36
-
37
- // #region Notification Dashboard
38
- RuleManagement;
39
- RuleDialog;
40
- RuleConditionBuilder;
41
- RuleConditionGroup;
42
-
43
- TemplateManagement;
44
- TemplateDialog;
45
- ParameterBuilder;
46
- TemplateConditionBuilder;
47
- TemplateConditionGroup;
48
-
49
- RouteManagement;
50
- ScreenRouteManagement;
51
- EmailDistributionRouteManagement;
52
- EmailUserRouteManagement;
53
- LogRouteManagement;
54
- MSTeamsRouteManagement;
55
- SlackRouteManagement;
56
-
57
- NotifyAuditManagement;
58
- // #endregion Notification Dashboard
59
-
60
- export async function loadRemotes() {
61
- rapidDesignSystem
62
- .provideDesignSystem()
63
- .register(rapidGridComponents, rapidDesignSystem.baseComponents, foundationLayoutComponents);
64
- }
@@ -1,30 +0,0 @@
1
- import { css } from '@genesislcap/web-core';
2
-
3
- const BACKGROUND_COLOR = '#EF5547';
4
-
5
- /** Class to use when there are no items */
6
- export const noItemsClass = 'no-items';
7
-
8
- export const FoundationInboxCounterStyles = css`
9
- :host {
10
- display: inline-block;
11
- min-width: 16px;
12
- height: 16px;
13
- border-radius: 9px;
14
- text-align: center;
15
- color: #fff;
16
- line-height: 16px;
17
- font-size: 9px;
18
- font-weight: 700;
19
- background: ${BACKGROUND_COLOR};
20
- pointer-events: none;
21
- }
22
-
23
- .hidden {
24
- visibility: hidden;
25
- }
26
-
27
- :host(.${noItemsClass}) {
28
- display: none;
29
- }
30
- `;
@@ -1,16 +0,0 @@
1
- import { classNames, html, when } from '@genesislcap/web-core';
2
- import type { FoundationInboxCounter } from './foundation-inbox-counter';
3
- import { noItemsClass } from './foundation-inbox-counter.styles';
4
-
5
- const MAX_NUMBER_TO_DISPLAY = 99;
6
-
7
- export const FoundationInboxCounterTemplate = html<FoundationInboxCounter>`
8
- <template class="${(x) => classNames([noItemsClass, x.value < 1])}">
9
- ${when(
10
- (x) => x.value > 0,
11
- html`
12
- ${(x) => (x.value > MAX_NUMBER_TO_DISPLAY ? `${MAX_NUMBER_TO_DISPLAY}+` : x.value)}
13
- `,
14
- )}
15
- </template>
16
- `;
@@ -1,68 +0,0 @@
1
- import { Connect } from '@genesislcap/foundation-comms';
2
- import { customElement, GenesisElement, observable } from '@genesislcap/web-core';
3
- import { Subscription } from 'rxjs';
4
- import { FoundationInboxService } from '../../../../services/inbox.service';
5
- import { AlertStatus } from '../../inbox.types';
6
- import { FoundationInboxCounterStyles } from './foundation-inbox-counter.styles';
7
- import { FoundationInboxCounterTemplate } from './foundation-inbox-counter.template';
8
-
9
- /**
10
- * The counter renders "99+" once the count exceeds 99, so there is no need to
11
- * stream more than 100 rows just to know the total to display.
12
- */
13
- const COUNTER_MAX_ROWS = 100;
14
-
15
- @customElement({
16
- name: 'foundation-inbox-counter',
17
- template: FoundationInboxCounterTemplate,
18
- styles: FoundationInboxCounterStyles,
19
- })
20
- export class FoundationInboxCounter extends GenesisElement {
21
- @observable value: number = 0;
22
- @Connect connect: Connect;
23
- @FoundationInboxService inboxService: FoundationInboxService;
24
- private connectionSub: Subscription;
25
-
26
- async connectedCallback() {
27
- super.connectedCallback();
28
-
29
- this.connectionSub = this.connect.isConnected$.subscribe(async (isConnected) => {
30
- if (isConnected) {
31
- await this.subscribeToAlerts();
32
- }
33
- });
34
- }
35
-
36
- disconnectedCallback() {
37
- super.disconnectedCallback();
38
- this.inboxService.unsubscribe(this.subscriptionHandler);
39
- this.connectionSub.unsubscribe();
40
- delete this.connectionSub;
41
- }
42
-
43
- /**
44
- * Subscribes to alerts from the inbox service
45
- * @private
46
- */
47
- private async subscribeToAlerts(): Promise<void> {
48
- this.inboxService.unsubscribe(this.subscriptionHandler);
49
-
50
- // Only the row count matters here: cap rows at the display ceiling and
51
- // request just the id to keep the payload small.
52
- this.inboxService.subscribe(
53
- this.subscriptionHandler,
54
- false,
55
- `ALERT_STATUS=='${AlertStatus.NEW}'`,
56
- COUNTER_MAX_ROWS,
57
- 'ALERT_ID',
58
- );
59
- }
60
-
61
- /**
62
- * Handles subscription updates from the inbox service
63
- * @private
64
- */
65
- private subscriptionHandler = ({ store }: { store: { items: any[] } }) => {
66
- this.value = (store?.items || []).length;
67
- };
68
- }
@@ -1,18 +0,0 @@
1
- import { css } from '@genesislcap/web-core';
2
- import { FoundationInboxStyles } from '../../inbox.styles';
3
-
4
- export const FoundationInboxFlyoutStyles = css`
5
- rapid-flyout::part(flyout) {
6
- width: 30%;
7
- min-width: 320px;
8
- padding: 0;
9
- }
10
-
11
- rapid-flyout::part(content) {
12
- height: 100%;
13
- display: flex;
14
- flex-direction: column;
15
- }
16
-
17
- ${FoundationInboxStyles}
18
- `;
@@ -1,22 +0,0 @@
1
- import { html, ref } from '@genesislcap/web-core';
2
- import { FoundationInboxTemplate } from '../../inbox.template';
3
- import type { FoundationInboxFlyout } from './foundation-inbox-flyout';
4
-
5
- export const FoundationInboxFlyoutTemplate = html<FoundationInboxFlyout>`
6
- <rapid-flyout
7
- ${ref('flyout')}
8
- position="right"
9
- @closed=${(x) => (x.flyoutClosed = true)}
10
- :closed=${(x) => x.flyoutClosed}
11
- displayHeader=${false}
12
- >
13
- <div class="inbox-header">
14
- <div class="inbox-header-title">Alerts Center</div>
15
- <rapid-button class="inbox-header-close" @click=${(x) => x.close()}>
16
- <rapid-icon part="icon" name="xmark" size="xl"></rapid-icon>
17
- </rapid-button>
18
- </div>
19
-
20
- ${FoundationInboxTemplate}
21
- </rapid-flyout>
22
- `;
@@ -1,43 +0,0 @@
1
- import type { Flyout } from '@genesislcap/rapid-design-system';
2
- import { observable, customElement } from '@genesislcap/web-core';
3
- import { loadRemotes } from '../../../components';
4
- import { FoundationInboxBase } from '../../inbox-base/inbox-base';
5
- import { FoundationInboxFlyoutStyles } from './foundation-inbox-flyout.styles';
6
- import { FoundationInboxFlyoutTemplate } from './foundation-inbox-flyout.template';
7
-
8
- @customElement({
9
- name: 'foundation-inbox-flyout',
10
- template: FoundationInboxFlyoutTemplate,
11
- styles: FoundationInboxFlyoutStyles,
12
- })
13
- export class FoundationInboxFlyout extends FoundationInboxBase {
14
- @observable ready: boolean = false;
15
-
16
- flyout: Flyout;
17
- @observable flyoutClosed: boolean = true;
18
-
19
- async connectedCallback() {
20
- super.connectedCallback();
21
- await this.loadRemotes();
22
- }
23
-
24
- disconnectedCallback(): void {
25
- super.disconnectedCallback();
26
- }
27
-
28
- public async open() {
29
- this.flyoutClosed = false;
30
- this.rules = await this.ruleService.getRules();
31
- this.templates = await this.templateService.getRuleTemplates();
32
- }
33
-
34
- public close() {
35
- this.ruleTemplateDetails = null;
36
- this.flyout.closeFlyout();
37
- }
38
-
39
- async loadRemotes() {
40
- const remoteComponents = await loadRemotes();
41
- this.ready = true;
42
- }
43
- }