@genesislcap/pbc-notify-ui 14.487.0 → 14.488.1-FUI-2571.1

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 (28) hide show
  1. package/dist/custom-elements.json +1229 -335
  2. package/dist/dts/components/foundation-inbox/inbox-base/inbox-base.d.ts +16 -0
  3. package/dist/dts/components/foundation-inbox/inbox-base/inbox-base.d.ts.map +1 -1
  4. package/dist/dts/components/foundation-inbox/inbox.styles.d.ts.map +1 -1
  5. package/dist/dts/components/foundation-inbox/inbox.template.d.ts.map +1 -1
  6. package/dist/dts/components/foundation-inbox/inbox.utils.d.ts +1 -0
  7. package/dist/dts/components/foundation-inbox/inbox.utils.d.ts.map +1 -1
  8. package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts.map +1 -1
  9. package/dist/dts/react.d.ts +11 -11
  10. package/dist/dts/services/notify-route.service.d.ts +27 -0
  11. package/dist/dts/services/notify-route.service.d.ts.map +1 -0
  12. package/dist/esm/components/foundation-inbox/inbox-base/inbox-base.js +183 -0
  13. package/dist/esm/components/foundation-inbox/inbox.styles.js +27 -0
  14. package/dist/esm/components/foundation-inbox/inbox.template.js +35 -3
  15. package/dist/esm/components/foundation-inbox/inbox.utils.js +7 -0
  16. package/dist/esm/components/foundation-notification-dashboard/notification-dashboard.utils.js +3 -1
  17. package/dist/esm/services/notify-route.service.js +107 -0
  18. package/dist/pbc-notify-ui.d.ts +45 -0
  19. package/dist/react.cjs +5 -5
  20. package/dist/react.mjs +4 -4
  21. package/dist/tsconfig.tsbuildinfo +1 -1
  22. package/package.json +23 -23
  23. package/src/components/foundation-inbox/inbox-base/inbox-base.ts +206 -0
  24. package/src/components/foundation-inbox/inbox.styles.ts +27 -0
  25. package/src/components/foundation-inbox/inbox.template.ts +48 -3
  26. package/src/components/foundation-inbox/inbox.utils.ts +8 -0
  27. package/src/components/foundation-notification-dashboard/notification-dashboard.utils.ts +7 -1
  28. package/src/services/notify-route.service.ts +164 -0
@@ -299,6 +299,26 @@
299
299
  }
300
300
  ]
301
301
  },
302
+ {
303
+ "kind": "javascript-module",
304
+ "path": "src/services/notify-route.service.ts",
305
+ "declarations": [
306
+ {
307
+ "kind": "variable",
308
+ "name": "NotifyRouteService"
309
+ }
310
+ ],
311
+ "exports": [
312
+ {
313
+ "kind": "js",
314
+ "name": "NotifyRouteService",
315
+ "declaration": {
316
+ "name": "NotifyRouteService",
317
+ "module": "src/services/notify-route.service.ts"
318
+ }
319
+ }
320
+ ]
321
+ },
302
322
  {
303
323
  "kind": "javascript-module",
304
324
  "path": "src/services/notify.service.ts",
@@ -379,6 +399,27 @@
379
399
  }
380
400
  ]
381
401
  },
402
+ {
403
+ "kind": "javascript-module",
404
+ "path": "src/styles/scrollbar.styles.ts",
405
+ "declarations": [
406
+ {
407
+ "kind": "variable",
408
+ "name": "scrollbarStyles",
409
+ "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
410
+ }
411
+ ],
412
+ "exports": [
413
+ {
414
+ "kind": "js",
415
+ "name": "scrollbarStyles",
416
+ "declaration": {
417
+ "name": "scrollbarStyles",
418
+ "module": "src/styles/scrollbar.styles.ts"
419
+ }
420
+ }
421
+ ]
422
+ },
382
423
  {
383
424
  "kind": "javascript-module",
384
425
  "path": "src/utils/eventDetail.ts",
@@ -700,27 +741,6 @@
700
741
  }
701
742
  ]
702
743
  },
703
- {
704
- "kind": "javascript-module",
705
- "path": "src/styles/scrollbar.styles.ts",
706
- "declarations": [
707
- {
708
- "kind": "variable",
709
- "name": "scrollbarStyles",
710
- "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
711
- }
712
- ],
713
- "exports": [
714
- {
715
- "kind": "js",
716
- "name": "scrollbarStyles",
717
- "declaration": {
718
- "name": "scrollbarStyles",
719
- "module": "src/styles/scrollbar.styles.ts"
720
- }
721
- }
722
- ]
723
- },
724
744
  {
725
745
  "kind": "javascript-module",
726
746
  "path": "src/components/foundation-inbox/inbox.styles.ts",
@@ -748,7 +768,7 @@
748
768
  {
749
769
  "kind": "variable",
750
770
  "name": "ruleAndTemplate",
751
- "default": "css`\n .template {\n .template-row {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .template-details {\n flex: 1;\n min-width: 0;\n }\n\n .template-subscribe-toggle {\n flex-shrink: 0;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .template-name {\n font-weight: 700;\n }\n\n .template-description {\n font-size: var(--type-ramp-minus-2-font-size);\n }\n\n .template-datetime {\n font-size: var(--type-ramp-minus-1-font-size);\n color: var(--neutral-foreground-hint);\n }\n }\n\n .rule {\n cursor: pointer;\n\n .rule-name {\n font-weight: 700;\n }\n\n .rule-expression {\n font-size: var(--type-ramp-minus-2-font-size);\n }\n\n .rule-datetime {\n font-size: var(--type-ramp-minus-1-font-size);\n color: var(--neutral-foreground-hint);\n }\n }\n\n .rule,\n .template {\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);\n }\n\n .template-subscribing {\n position: relative;\n z-index: 5;\n overflow: visible;\n padding-bottom: calc(var(--design-unit) * 24px);\n }\n\n .rule-status-actions {\n display: flex;\n flex-direction: row;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .rule:hover {\n background-color: var(--neutral-layer-3);\n }\n\n .rule-actions {\n margin-left: auto;\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n justify-content: space-between;\n visibility: hidden;\n }\n\n .rule:hover > .rule-status-actions > .rule-actions {\n visibility: visible;\n }\n\n .active {\n color: #7acc79;\n }\n\n .paused {\n color: #ffb660;\n }\n\n .rule-action-edit,\n .rule-action-enable-disable,\n .rule-action-delete {\n cursor: pointer;\n }\n\n .close-icon {\n position: absolute;\n right: calc(var(--design-unit) * 2px);\n cursor: pointer;\n }\n`"
771
+ "default": "css`\n .template {\n .template-row {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .template-details {\n flex: 1;\n min-width: 0;\n }\n\n .template-subscribe-toggle {\n flex-shrink: 0;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .template-name {\n font-weight: 700;\n }\n\n .template-description {\n font-size: var(--type-ramp-minus-2-font-size);\n }\n\n .template-datetime {\n font-size: var(--type-ramp-minus-1-font-size);\n color: var(--neutral-foreground-hint);\n }\n\n .channel-chip-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 1px);\n margin-top: calc(var(--design-unit) * 1px);\n justify-content: flex-end;\n }\n\n .channel-chip {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 999px);\n font-size: var(--type-ramp-minus-2-font-size);\n\n &[appearance='selected'] {\n background-color: color-mix(in srgb, #7acc79, transparent 20%);\n color: #fff;\n border-color: transparent;\n }\n\n &[disabled] {\n opacity: 50%;\n background-color: var(--neutral-layer-3);\n color: var(--neutral-foreground-hint);\n cursor: not-allowed;\n }\n }\n }\n\n .rule {\n cursor: pointer;\n\n .rule-name {\n font-weight: 700;\n }\n\n .rule-expression {\n font-size: var(--type-ramp-minus-2-font-size);\n }\n\n .rule-datetime {\n font-size: var(--type-ramp-minus-1-font-size);\n color: var(--neutral-foreground-hint);\n }\n }\n\n .rule,\n .template {\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px) calc(var(--design-unit) * 3px);\n }\n\n .template-subscribing {\n position: relative;\n z-index: 5;\n overflow: visible;\n padding-bottom: calc(var(--design-unit) * 24px);\n }\n\n .rule-status-actions {\n display: flex;\n flex-direction: row;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .rule:hover {\n background-color: var(--neutral-layer-3);\n }\n\n .rule-actions {\n margin-left: auto;\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n justify-content: space-between;\n visibility: hidden;\n }\n\n .rule:hover > .rule-status-actions > .rule-actions {\n visibility: visible;\n }\n\n .active {\n color: #7acc79;\n }\n\n .paused {\n color: #ffb660;\n }\n\n .rule-action-edit,\n .rule-action-enable-disable,\n .rule-action-delete {\n cursor: pointer;\n }\n\n .close-icon {\n position: absolute;\n right: calc(var(--design-unit) * 2px);\n cursor: pointer;\n }\n`"
752
772
  },
753
773
  {
754
774
  "kind": "variable",
@@ -815,7 +835,7 @@
815
835
  {
816
836
  "kind": "variable",
817
837
  "name": "FoundationInboxTemplate",
818
- "default": "html<FoundationInbox>`\n <div class=\"inbox-content\">\n <rapid-tabs ${ref('tabs')} appearance=\"secondary\" activeid=${(x) => InboxTab.ALERTS_NEW}>\n <rapid-tab\n slot=\"alert-log-tab\"\n id=${InboxTab.ALERTS_NEW}\n @click=${(x) => x.inboxTabChanged(InboxTab.ALERTS_NEW)}\n appearance=\"secondary\"\n >\n Alerts\n </rapid-tab>\n <rapid-tab\n slot=\"alert-log-tab\"\n id=${InboxTab.ALERT_HISTORY}\n @click=${(x) => x.inboxTabChanged(InboxTab.ALERT_HISTORY)}\n appearance=\"secondary\"\n >\n Alert History\n </rapid-tab>\n ${when(\n (x) => x.auth.currentUser?.hasPermission(NotifyPermission.NotificationRuleTemplateView),\n html`\n <rapid-tab\n slot=\"subscribe-tab\"\n id=${InboxTab.SUBSCRIBE}\n @click=${(x) => x.inboxTabChanged(InboxTab.SUBSCRIBE)}\n appearance=\"secondary\"\n >\n Subscribe\n </rapid-tab>\n `,\n )}\n\n <!-- Alerts -->\n ${(_) => alertsTab(InboxTab.ALERTS_NEW)} ${(_) => alertsTab(InboxTab.ALERT_HISTORY)}\n ${when(\n (x) => x.auth.currentUser?.hasPermission(NotifyPermission.NotificationRuleTemplateView),\n html`\n <rapid-tab-panel\n slot=\"subscribe-tab\"\n class=\"subscribe-tab-panel\"\n id=${InboxTab.SUBSCRIBE}\n style=${(x) => (x.selectedTab === InboxTab.SUBSCRIBE ? '' : 'display: none;')}\n >\n <div class=\"search\">\n <rapid-text-field\n class=\"search-input\"\n @input=${(x, c) => {\n x.searchSubscribe = (c.event.target as HTMLInputElement).value;\n x.filterSearchSubscribe();\n }}\n placeholder=\"Search Templates...\"\n autocomplete=\"off\"\n ></rapid-text-field>\n </div>\n <div class=\"subscribe-tab-content\">\n ${repeat(\n (x) => x.templatesFilter,\n html<RuleTemplate, FoundationInbox>`\n <div\n class=\"template ${(x, c) =>\n c.parent.pendingSubscribeTemplateId === x.ID ? 'template-subscribing' : ''}\"\n id=${(x) => x.ID}\n >\n <div class=\"template-row\">\n <div class=\"template-details\">\n <div class=\"template-name\">${(x) => x.NAME}</div>\n <div class=\"template-description\">${(x) => x.DESCRIPTION}</div>\n <div class=\"template-datetime\">\n ${(x, c) => getFormattedDate(x.DATETIME)}\n </div>\n </div>\n <rapid-switch\n class=\"template-subscribe-toggle\"\n :checked=${(x, c) => c.parent.isTemplateSubscribed(x)}\n @change=${(x, c) => c.parent.handleTemplateToggle(x, c.event as Event)}\n @click=${(_, c) => c.event.stopPropagation()}\n ></rapid-switch>\n </div>\n ${when(\n (x, c) => c.parent.pendingSubscribeTemplateId === x.ID,\n html`\n <inbox-subscription\n inline\n :template=${(x, c) => c.parent.ruleTemplateDetails}\n @templateSubscribed=${(x, c) =>\n c.parent.onTemplateSubscribed(eventDetail(c))}\n @subscribeCancelled=${(x, c) => c.parent.cancelPendingSubscribe()}\n ></inbox-subscription>\n `,\n )}\n </div>\n `,\n )}\n </div>\n </rapid-tab-panel>\n `,\n )}\n </rapid-tabs>\n </div>\n`",
838
+ "default": "html<FoundationInbox>`\n <div class=\"inbox-content\">\n <rapid-tabs ${ref('tabs')} appearance=\"secondary\" activeid=${(x) => InboxTab.ALERTS_NEW}>\n <rapid-tab\n slot=\"alert-log-tab\"\n id=${InboxTab.ALERTS_NEW}\n @click=${(x) => x.inboxTabChanged(InboxTab.ALERTS_NEW)}\n appearance=\"secondary\"\n >\n Alerts\n </rapid-tab>\n <rapid-tab\n slot=\"alert-log-tab\"\n id=${InboxTab.ALERT_HISTORY}\n @click=${(x) => x.inboxTabChanged(InboxTab.ALERT_HISTORY)}\n appearance=\"secondary\"\n >\n Alert History\n </rapid-tab>\n ${when(\n (x) => x.auth.currentUser?.hasPermission(NotifyPermission.NotificationRuleTemplateView),\n html`\n <rapid-tab\n slot=\"subscribe-tab\"\n id=${InboxTab.SUBSCRIBE}\n @click=${(x) => x.inboxTabChanged(InboxTab.SUBSCRIBE)}\n appearance=\"secondary\"\n >\n Subscribe\n </rapid-tab>\n `,\n )}\n\n <!-- Alerts -->\n ${(_) => alertsTab(InboxTab.ALERTS_NEW)} ${(_) => alertsTab(InboxTab.ALERT_HISTORY)}\n ${when(\n (x) => x.auth.currentUser?.hasPermission(NotifyPermission.NotificationRuleTemplateView),\n html`\n <rapid-tab-panel\n slot=\"subscribe-tab\"\n class=\"subscribe-tab-panel\"\n id=${InboxTab.SUBSCRIBE}\n style=${(x) => (x.selectedTab === InboxTab.SUBSCRIBE ? '' : 'display: none;')}\n >\n <div class=\"search\">\n <rapid-text-field\n class=\"search-input\"\n @input=${(x, c) => {\n x.searchSubscribe = (c.event.target as HTMLInputElement).value;\n x.filterSearchSubscribe();\n }}\n placeholder=\"Search Templates...\"\n autocomplete=\"off\"\n ></rapid-text-field>\n </div>\n <div class=\"subscribe-tab-content\">\n ${repeat(\n (x) => x.templatesFilter,\n html<RuleTemplate, FoundationInbox>`\n <div\n class=\"template ${(x, c) =>\n c.parent.pendingSubscribeTemplateId === x.ID ? 'template-subscribing' : ''}\"\n id=${(x) => x.ID}\n >\n <div class=\"template-row\">\n <div class=\"template-details\">\n <div class=\"template-name\">${(x) => x.NAME}</div>\n <div class=\"template-description\">${(x) => x.DESCRIPTION}</div>\n </div>\n <rapid-switch\n class=\"template-subscribe-toggle\"\n :checked=${(x, c) => c.parent.isTemplateSubscribed(x)}\n @change=${(x, c) => c.parent.handleTemplateToggle(x, c.event as Event)}\n @click=${(_, c) => c.event.stopPropagation()}\n ></rapid-switch>\n </div>\n ${when(\n (x, c) =>\n c.parent.auth.currentUser?.hasPermission(\n NotifyPermission.NotificationRouteView,\n ),\n html<RuleTemplate, FoundationInbox>`\n <div class=\"channel-chip-row\">\n ${when(\n (x, c) => c.parent.isChannelAvailable(x, 'popup'),\n html<RuleTemplate, FoundationInbox>`\n <rapid-button\n class=\"channel-chip\"\n appearance=${(x, c) =>\n c.parent.isChannelEnabled(x, 'popup') ? 'selected' : ''}\n ?disabled=${(x, c) =>\n !c.parent.isTemplateSubscribed(x) ||\n c.parent.isChannelTogglePending(x, 'popup')}\n @click=${(x, c) => {\n c.event.stopPropagation();\n c.parent.toggleChannel(x, 'popup');\n }}\n >\n Pop-up\n </rapid-button>\n `,\n )}\n ${when(\n (x, c) => c.parent.isChannelAvailable(x, 'email'),\n html<RuleTemplate, FoundationInbox>`\n <rapid-button\n class=\"channel-chip\"\n appearance=${(x, c) =>\n c.parent.isChannelEnabled(x, 'email') ? 'selected' : ''}\n ?disabled=${(x, c) =>\n !c.parent.isTemplateSubscribed(x) ||\n c.parent.isChannelTogglePending(x, 'email')}\n @click=${(x, c) => {\n c.event.stopPropagation();\n c.parent.toggleChannel(x, 'email');\n }}\n >\n Email\n </rapid-button>\n `,\n )}\n </div>\n `,\n )}\n ${when(\n (x, c) => c.parent.pendingSubscribeTemplateId === x.ID,\n html`\n <inbox-subscription\n inline\n :template=${(x, c) => c.parent.ruleTemplateDetails}\n @templateSubscribed=${(x, c) =>\n c.parent.onTemplateSubscribed(eventDetail(c))}\n @subscribeCancelled=${(x, c) => c.parent.cancelPendingSubscribe()}\n ></inbox-subscription>\n `,\n )}\n </div>\n `,\n )}\n </div>\n </rapid-tab-panel>\n `,\n )}\n </rapid-tabs>\n </div>\n`",
819
839
  "privacy": "public"
820
840
  }
821
841
  ],
@@ -996,6 +1016,66 @@
996
1016
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
997
1017
  }
998
1018
  },
1019
+ {
1020
+ "kind": "field",
1021
+ "name": "routeService",
1022
+ "type": {
1023
+ "text": "NotifyRouteService"
1024
+ },
1025
+ "inheritedFrom": {
1026
+ "name": "FoundationInboxBase",
1027
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1028
+ }
1029
+ },
1030
+ {
1031
+ "kind": "field",
1032
+ "name": "channelAvailability",
1033
+ "type": {
1034
+ "text": "Record<string, Record<NotifyChannel, boolean>>"
1035
+ },
1036
+ "default": "{}",
1037
+ "inheritedFrom": {
1038
+ "name": "FoundationInboxBase",
1039
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1040
+ }
1041
+ },
1042
+ {
1043
+ "kind": "field",
1044
+ "name": "userChannelRoutes",
1045
+ "type": {
1046
+ "text": "Record<string, Record<NotifyChannel, NotifyRoute | null>>"
1047
+ },
1048
+ "default": "{}",
1049
+ "inheritedFrom": {
1050
+ "name": "FoundationInboxBase",
1051
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1052
+ }
1053
+ },
1054
+ {
1055
+ "kind": "field",
1056
+ "name": "channelTogglePending",
1057
+ "type": {
1058
+ "text": "Record<string, Partial<Record<NotifyChannel, boolean>>>"
1059
+ },
1060
+ "default": "{}",
1061
+ "inheritedFrom": {
1062
+ "name": "FoundationInboxBase",
1063
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1064
+ }
1065
+ },
1066
+ {
1067
+ "kind": "field",
1068
+ "name": "channelRoutesQueryId",
1069
+ "type": {
1070
+ "text": "number"
1071
+ },
1072
+ "privacy": "private",
1073
+ "default": "0",
1074
+ "inheritedFrom": {
1075
+ "name": "FoundationInboxBase",
1076
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1077
+ }
1078
+ },
999
1079
  {
1000
1080
  "kind": "field",
1001
1081
  "name": "searchAlertLog",
@@ -1327,6 +1407,43 @@
1327
1407
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1328
1408
  }
1329
1409
  },
1410
+ {
1411
+ "kind": "method",
1412
+ "name": "refreshChannelRoutes",
1413
+ "privacy": "private",
1414
+ "inheritedFrom": {
1415
+ "name": "FoundationInboxBase",
1416
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1417
+ }
1418
+ },
1419
+ {
1420
+ "kind": "method",
1421
+ "name": "isOwnRoute",
1422
+ "privacy": "private",
1423
+ "return": {
1424
+ "type": {
1425
+ "text": "boolean"
1426
+ }
1427
+ },
1428
+ "parameters": [
1429
+ {
1430
+ "name": "route",
1431
+ "type": {
1432
+ "text": "NotifyRoute"
1433
+ }
1434
+ },
1435
+ {
1436
+ "name": "username",
1437
+ "type": {
1438
+ "text": "string"
1439
+ }
1440
+ }
1441
+ ],
1442
+ "inheritedFrom": {
1443
+ "name": "FoundationInboxBase",
1444
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1445
+ }
1446
+ },
1330
1447
  {
1331
1448
  "kind": "method",
1332
1449
  "name": "findSubscribedRule",
@@ -1371,7 +1488,12 @@
1371
1488
  },
1372
1489
  {
1373
1490
  "kind": "method",
1374
- "name": "handleTemplateToggle",
1491
+ "name": "isChannelAvailable",
1492
+ "return": {
1493
+ "type": {
1494
+ "text": "boolean"
1495
+ }
1496
+ },
1375
1497
  "parameters": [
1376
1498
  {
1377
1499
  "name": "template",
@@ -1380,9 +1502,9 @@
1380
1502
  }
1381
1503
  },
1382
1504
  {
1383
- "name": "event",
1505
+ "name": "channel",
1384
1506
  "type": {
1385
- "text": "Event"
1507
+ "text": "NotifyChannel"
1386
1508
  }
1387
1509
  }
1388
1510
  ],
@@ -1393,13 +1515,23 @@
1393
1515
  },
1394
1516
  {
1395
1517
  "kind": "method",
1396
- "name": "onTemplateSubscribed",
1518
+ "name": "isChannelEnabled",
1519
+ "return": {
1520
+ "type": {
1521
+ "text": "boolean"
1522
+ }
1523
+ },
1397
1524
  "parameters": [
1398
1525
  {
1399
- "name": "templateId",
1400
- "optional": true,
1526
+ "name": "template",
1401
1527
  "type": {
1402
- "text": "string"
1528
+ "text": "RuleTemplate"
1529
+ }
1530
+ },
1531
+ {
1532
+ "name": "channel",
1533
+ "type": {
1534
+ "text": "NotifyChannel"
1403
1535
  }
1404
1536
  }
1405
1537
  ],
@@ -1410,7 +1542,27 @@
1410
1542
  },
1411
1543
  {
1412
1544
  "kind": "method",
1413
- "name": "cancelPendingSubscribe",
1545
+ "name": "isLastEnabledChannel",
1546
+ "privacy": "private",
1547
+ "return": {
1548
+ "type": {
1549
+ "text": "boolean"
1550
+ }
1551
+ },
1552
+ "parameters": [
1553
+ {
1554
+ "name": "template",
1555
+ "type": {
1556
+ "text": "RuleTemplate"
1557
+ }
1558
+ },
1559
+ {
1560
+ "name": "channel",
1561
+ "type": {
1562
+ "text": "NotifyChannel"
1563
+ }
1564
+ }
1565
+ ],
1414
1566
  "inheritedFrom": {
1415
1567
  "name": "FoundationInboxBase",
1416
1568
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
@@ -1418,57 +1570,245 @@
1418
1570
  },
1419
1571
  {
1420
1572
  "kind": "method",
1421
- "name": "formatDateStrForMatchCriteria",
1573
+ "name": "isChannelTogglePending",
1574
+ "return": {
1575
+ "type": {
1576
+ "text": "boolean"
1577
+ }
1578
+ },
1422
1579
  "parameters": [
1423
1580
  {
1424
- "name": "date",
1425
- "optional": true,
1581
+ "name": "template",
1582
+ "type": {
1583
+ "text": "RuleTemplate"
1584
+ }
1585
+ },
1586
+ {
1587
+ "name": "channel",
1588
+ "type": {
1589
+ "text": "NotifyChannel"
1590
+ }
1591
+ }
1592
+ ],
1593
+ "inheritedFrom": {
1594
+ "name": "FoundationInboxBase",
1595
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1596
+ }
1597
+ },
1598
+ {
1599
+ "kind": "method",
1600
+ "name": "setChannelRoute",
1601
+ "privacy": "private",
1602
+ "parameters": [
1603
+ {
1604
+ "name": "templateId",
1426
1605
  "type": {
1427
1606
  "text": "string"
1428
1607
  }
1608
+ },
1609
+ {
1610
+ "name": "channel",
1611
+ "type": {
1612
+ "text": "NotifyChannel"
1613
+ }
1614
+ },
1615
+ {
1616
+ "name": "route",
1617
+ "type": {
1618
+ "text": "NotifyRoute | null"
1619
+ }
1429
1620
  }
1430
1621
  ],
1431
1622
  "inheritedFrom": {
1432
1623
  "name": "FoundationInboxBase",
1433
1624
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1434
1625
  }
1435
- }
1436
- ]
1437
- }
1438
- ],
1439
- "exports": [
1440
- {
1441
- "kind": "js",
1442
- "name": "FoundationInbox",
1443
- "declaration": {
1444
- "name": "FoundationInbox",
1445
- "module": "src/components/foundation-inbox/inbox.ts"
1446
- }
1447
- },
1448
- {
1449
- "kind": "custom-element-definition",
1450
- "name": "foundation-inbox",
1451
- "declaration": {
1452
- "name": "FoundationInbox",
1453
- "module": "src/components/foundation-inbox/inbox.ts"
1454
- }
1455
- }
1456
- ]
1457
- },
1458
- {
1459
- "kind": "javascript-module",
1460
- "path": "src/components/foundation-inbox/inbox.types.ts",
1461
- "declarations": [],
1462
- "exports": []
1463
- },
1464
- {
1465
- "kind": "javascript-module",
1466
- "path": "src/components/foundation-inbox/inbox.utils.ts",
1467
- "declarations": [
1468
- {
1469
- "kind": "function",
1470
- "name": "getFormattedDate",
1471
- "parameters": [
1626
+ },
1627
+ {
1628
+ "kind": "method",
1629
+ "name": "setChannelTogglePending",
1630
+ "privacy": "private",
1631
+ "parameters": [
1632
+ {
1633
+ "name": "templateId",
1634
+ "type": {
1635
+ "text": "string"
1636
+ }
1637
+ },
1638
+ {
1639
+ "name": "channel",
1640
+ "type": {
1641
+ "text": "NotifyChannel"
1642
+ }
1643
+ },
1644
+ {
1645
+ "name": "pending",
1646
+ "type": {
1647
+ "text": "boolean"
1648
+ }
1649
+ }
1650
+ ],
1651
+ "inheritedFrom": {
1652
+ "name": "FoundationInboxBase",
1653
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1654
+ }
1655
+ },
1656
+ {
1657
+ "kind": "method",
1658
+ "name": "toggleChannel",
1659
+ "parameters": [
1660
+ {
1661
+ "name": "template",
1662
+ "type": {
1663
+ "text": "RuleTemplate"
1664
+ }
1665
+ },
1666
+ {
1667
+ "name": "channel",
1668
+ "type": {
1669
+ "text": "NotifyChannel"
1670
+ }
1671
+ }
1672
+ ],
1673
+ "inheritedFrom": {
1674
+ "name": "FoundationInboxBase",
1675
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1676
+ }
1677
+ },
1678
+ {
1679
+ "kind": "method",
1680
+ "name": "handleTemplateToggle",
1681
+ "parameters": [
1682
+ {
1683
+ "name": "template",
1684
+ "type": {
1685
+ "text": "RuleTemplate"
1686
+ }
1687
+ },
1688
+ {
1689
+ "name": "event",
1690
+ "type": {
1691
+ "text": "Event"
1692
+ }
1693
+ }
1694
+ ],
1695
+ "inheritedFrom": {
1696
+ "name": "FoundationInboxBase",
1697
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1698
+ }
1699
+ },
1700
+ {
1701
+ "kind": "method",
1702
+ "name": "onTemplateSubscribed",
1703
+ "parameters": [
1704
+ {
1705
+ "name": "templateId",
1706
+ "optional": true,
1707
+ "type": {
1708
+ "text": "string"
1709
+ }
1710
+ }
1711
+ ],
1712
+ "inheritedFrom": {
1713
+ "name": "FoundationInboxBase",
1714
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1715
+ }
1716
+ },
1717
+ {
1718
+ "kind": "method",
1719
+ "name": "ensureDefaultChannel",
1720
+ "privacy": "private",
1721
+ "parameters": [
1722
+ {
1723
+ "name": "template",
1724
+ "type": {
1725
+ "text": "RuleTemplate"
1726
+ }
1727
+ }
1728
+ ],
1729
+ "inheritedFrom": {
1730
+ "name": "FoundationInboxBase",
1731
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1732
+ }
1733
+ },
1734
+ {
1735
+ "kind": "method",
1736
+ "name": "cancelPendingSubscribe",
1737
+ "inheritedFrom": {
1738
+ "name": "FoundationInboxBase",
1739
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1740
+ }
1741
+ },
1742
+ {
1743
+ "kind": "method",
1744
+ "name": "formatDateStrForMatchCriteria",
1745
+ "parameters": [
1746
+ {
1747
+ "name": "date",
1748
+ "optional": true,
1749
+ "type": {
1750
+ "text": "string"
1751
+ }
1752
+ }
1753
+ ],
1754
+ "inheritedFrom": {
1755
+ "name": "FoundationInboxBase",
1756
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
1757
+ }
1758
+ }
1759
+ ]
1760
+ }
1761
+ ],
1762
+ "exports": [
1763
+ {
1764
+ "kind": "js",
1765
+ "name": "FoundationInbox",
1766
+ "declaration": {
1767
+ "name": "FoundationInbox",
1768
+ "module": "src/components/foundation-inbox/inbox.ts"
1769
+ }
1770
+ },
1771
+ {
1772
+ "kind": "custom-element-definition",
1773
+ "name": "foundation-inbox",
1774
+ "declaration": {
1775
+ "name": "FoundationInbox",
1776
+ "module": "src/components/foundation-inbox/inbox.ts"
1777
+ }
1778
+ }
1779
+ ]
1780
+ },
1781
+ {
1782
+ "kind": "javascript-module",
1783
+ "path": "src/components/foundation-inbox/inbox.types.ts",
1784
+ "declarations": [],
1785
+ "exports": []
1786
+ },
1787
+ {
1788
+ "kind": "javascript-module",
1789
+ "path": "src/components/foundation-inbox/inbox.utils.ts",
1790
+ "declarations": [
1791
+ {
1792
+ "kind": "function",
1793
+ "name": "extractTopic",
1794
+ "return": {
1795
+ "type": {
1796
+ "text": "string | null"
1797
+ }
1798
+ },
1799
+ "parameters": [
1800
+ {
1801
+ "name": "resultExpression",
1802
+ "type": {
1803
+ "text": "string"
1804
+ }
1805
+ }
1806
+ ]
1807
+ },
1808
+ {
1809
+ "kind": "function",
1810
+ "name": "getFormattedDate",
1811
+ "parameters": [
1472
1812
  {
1473
1813
  "name": "dateTimeInMills"
1474
1814
  }
@@ -1488,6 +1828,14 @@
1488
1828
  }
1489
1829
  ],
1490
1830
  "exports": [
1831
+ {
1832
+ "kind": "js",
1833
+ "name": "extractTopic",
1834
+ "declaration": {
1835
+ "name": "extractTopic",
1836
+ "module": "src/components/foundation-inbox/inbox.utils.ts"
1837
+ }
1838
+ },
1491
1839
  {
1492
1840
  "kind": "js",
1493
1841
  "name": "getFormattedDate",
@@ -2204,6 +2552,46 @@
2204
2552
  },
2205
2553
  "default": "[]"
2206
2554
  },
2555
+ {
2556
+ "kind": "field",
2557
+ "name": "routeService",
2558
+ "type": {
2559
+ "text": "NotifyRouteService"
2560
+ }
2561
+ },
2562
+ {
2563
+ "kind": "field",
2564
+ "name": "channelAvailability",
2565
+ "type": {
2566
+ "text": "Record<string, Record<NotifyChannel, boolean>>"
2567
+ },
2568
+ "default": "{}"
2569
+ },
2570
+ {
2571
+ "kind": "field",
2572
+ "name": "userChannelRoutes",
2573
+ "type": {
2574
+ "text": "Record<string, Record<NotifyChannel, NotifyRoute | null>>"
2575
+ },
2576
+ "default": "{}"
2577
+ },
2578
+ {
2579
+ "kind": "field",
2580
+ "name": "channelTogglePending",
2581
+ "type": {
2582
+ "text": "Record<string, Partial<Record<NotifyChannel, boolean>>>"
2583
+ },
2584
+ "default": "{}"
2585
+ },
2586
+ {
2587
+ "kind": "field",
2588
+ "name": "channelRoutesQueryId",
2589
+ "type": {
2590
+ "text": "number"
2591
+ },
2592
+ "privacy": "private",
2593
+ "default": "0"
2594
+ },
2207
2595
  {
2208
2596
  "kind": "field",
2209
2597
  "name": "searchAlertLog",
@@ -2411,6 +2799,35 @@
2411
2799
  "kind": "method",
2412
2800
  "name": "refreshSubscribeData"
2413
2801
  },
2802
+ {
2803
+ "kind": "method",
2804
+ "name": "refreshChannelRoutes",
2805
+ "privacy": "private"
2806
+ },
2807
+ {
2808
+ "kind": "method",
2809
+ "name": "isOwnRoute",
2810
+ "privacy": "private",
2811
+ "return": {
2812
+ "type": {
2813
+ "text": "boolean"
2814
+ }
2815
+ },
2816
+ "parameters": [
2817
+ {
2818
+ "name": "route",
2819
+ "type": {
2820
+ "text": "NotifyRoute"
2821
+ }
2822
+ },
2823
+ {
2824
+ "name": "username",
2825
+ "type": {
2826
+ "text": "string"
2827
+ }
2828
+ }
2829
+ ]
2830
+ },
2414
2831
  {
2415
2832
  "kind": "method",
2416
2833
  "name": "findSubscribedRule",
@@ -2447,7 +2864,12 @@
2447
2864
  },
2448
2865
  {
2449
2866
  "kind": "method",
2450
- "name": "handleTemplateToggle",
2867
+ "name": "isChannelAvailable",
2868
+ "return": {
2869
+ "type": {
2870
+ "text": "boolean"
2871
+ }
2872
+ },
2451
2873
  "parameters": [
2452
2874
  {
2453
2875
  "name": "template",
@@ -2456,25 +2878,194 @@
2456
2878
  }
2457
2879
  },
2458
2880
  {
2459
- "name": "event",
2881
+ "name": "channel",
2460
2882
  "type": {
2461
- "text": "Event"
2883
+ "text": "NotifyChannel"
2462
2884
  }
2463
2885
  }
2464
2886
  ]
2465
2887
  },
2466
2888
  {
2467
2889
  "kind": "method",
2468
- "name": "onTemplateSubscribed",
2890
+ "name": "isChannelEnabled",
2891
+ "return": {
2892
+ "type": {
2893
+ "text": "boolean"
2894
+ }
2895
+ },
2469
2896
  "parameters": [
2470
2897
  {
2471
- "name": "templateId",
2472
- "optional": true,
2898
+ "name": "template",
2473
2899
  "type": {
2474
- "text": "string"
2900
+ "text": "RuleTemplate"
2475
2901
  }
2476
- }
2477
- ]
2902
+ },
2903
+ {
2904
+ "name": "channel",
2905
+ "type": {
2906
+ "text": "NotifyChannel"
2907
+ }
2908
+ }
2909
+ ]
2910
+ },
2911
+ {
2912
+ "kind": "method",
2913
+ "name": "isLastEnabledChannel",
2914
+ "privacy": "private",
2915
+ "return": {
2916
+ "type": {
2917
+ "text": "boolean"
2918
+ }
2919
+ },
2920
+ "parameters": [
2921
+ {
2922
+ "name": "template",
2923
+ "type": {
2924
+ "text": "RuleTemplate"
2925
+ }
2926
+ },
2927
+ {
2928
+ "name": "channel",
2929
+ "type": {
2930
+ "text": "NotifyChannel"
2931
+ }
2932
+ }
2933
+ ]
2934
+ },
2935
+ {
2936
+ "kind": "method",
2937
+ "name": "isChannelTogglePending",
2938
+ "return": {
2939
+ "type": {
2940
+ "text": "boolean"
2941
+ }
2942
+ },
2943
+ "parameters": [
2944
+ {
2945
+ "name": "template",
2946
+ "type": {
2947
+ "text": "RuleTemplate"
2948
+ }
2949
+ },
2950
+ {
2951
+ "name": "channel",
2952
+ "type": {
2953
+ "text": "NotifyChannel"
2954
+ }
2955
+ }
2956
+ ]
2957
+ },
2958
+ {
2959
+ "kind": "method",
2960
+ "name": "setChannelRoute",
2961
+ "privacy": "private",
2962
+ "parameters": [
2963
+ {
2964
+ "name": "templateId",
2965
+ "type": {
2966
+ "text": "string"
2967
+ }
2968
+ },
2969
+ {
2970
+ "name": "channel",
2971
+ "type": {
2972
+ "text": "NotifyChannel"
2973
+ }
2974
+ },
2975
+ {
2976
+ "name": "route",
2977
+ "type": {
2978
+ "text": "NotifyRoute | null"
2979
+ }
2980
+ }
2981
+ ]
2982
+ },
2983
+ {
2984
+ "kind": "method",
2985
+ "name": "setChannelTogglePending",
2986
+ "privacy": "private",
2987
+ "parameters": [
2988
+ {
2989
+ "name": "templateId",
2990
+ "type": {
2991
+ "text": "string"
2992
+ }
2993
+ },
2994
+ {
2995
+ "name": "channel",
2996
+ "type": {
2997
+ "text": "NotifyChannel"
2998
+ }
2999
+ },
3000
+ {
3001
+ "name": "pending",
3002
+ "type": {
3003
+ "text": "boolean"
3004
+ }
3005
+ }
3006
+ ]
3007
+ },
3008
+ {
3009
+ "kind": "method",
3010
+ "name": "toggleChannel",
3011
+ "parameters": [
3012
+ {
3013
+ "name": "template",
3014
+ "type": {
3015
+ "text": "RuleTemplate"
3016
+ }
3017
+ },
3018
+ {
3019
+ "name": "channel",
3020
+ "type": {
3021
+ "text": "NotifyChannel"
3022
+ }
3023
+ }
3024
+ ]
3025
+ },
3026
+ {
3027
+ "kind": "method",
3028
+ "name": "handleTemplateToggle",
3029
+ "parameters": [
3030
+ {
3031
+ "name": "template",
3032
+ "type": {
3033
+ "text": "RuleTemplate"
3034
+ }
3035
+ },
3036
+ {
3037
+ "name": "event",
3038
+ "type": {
3039
+ "text": "Event"
3040
+ }
3041
+ }
3042
+ ]
3043
+ },
3044
+ {
3045
+ "kind": "method",
3046
+ "name": "onTemplateSubscribed",
3047
+ "parameters": [
3048
+ {
3049
+ "name": "templateId",
3050
+ "optional": true,
3051
+ "type": {
3052
+ "text": "string"
3053
+ }
3054
+ }
3055
+ ]
3056
+ },
3057
+ {
3058
+ "kind": "method",
3059
+ "name": "ensureDefaultChannel",
3060
+ "privacy": "private",
3061
+ "parameters": [
3062
+ {
3063
+ "name": "template",
3064
+ "type": {
3065
+ "text": "RuleTemplate"
3066
+ }
3067
+ }
3068
+ ]
2478
3069
  },
2479
3070
  {
2480
3071
  "kind": "method",
@@ -3582,6 +4173,66 @@
3582
4173
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
3583
4174
  }
3584
4175
  },
4176
+ {
4177
+ "kind": "field",
4178
+ "name": "routeService",
4179
+ "type": {
4180
+ "text": "NotifyRouteService"
4181
+ },
4182
+ "inheritedFrom": {
4183
+ "name": "FoundationInboxBase",
4184
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4185
+ }
4186
+ },
4187
+ {
4188
+ "kind": "field",
4189
+ "name": "channelAvailability",
4190
+ "type": {
4191
+ "text": "Record<string, Record<NotifyChannel, boolean>>"
4192
+ },
4193
+ "default": "{}",
4194
+ "inheritedFrom": {
4195
+ "name": "FoundationInboxBase",
4196
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4197
+ }
4198
+ },
4199
+ {
4200
+ "kind": "field",
4201
+ "name": "userChannelRoutes",
4202
+ "type": {
4203
+ "text": "Record<string, Record<NotifyChannel, NotifyRoute | null>>"
4204
+ },
4205
+ "default": "{}",
4206
+ "inheritedFrom": {
4207
+ "name": "FoundationInboxBase",
4208
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4209
+ }
4210
+ },
4211
+ {
4212
+ "kind": "field",
4213
+ "name": "channelTogglePending",
4214
+ "type": {
4215
+ "text": "Record<string, Partial<Record<NotifyChannel, boolean>>>"
4216
+ },
4217
+ "default": "{}",
4218
+ "inheritedFrom": {
4219
+ "name": "FoundationInboxBase",
4220
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4221
+ }
4222
+ },
4223
+ {
4224
+ "kind": "field",
4225
+ "name": "channelRoutesQueryId",
4226
+ "type": {
4227
+ "text": "number"
4228
+ },
4229
+ "privacy": "private",
4230
+ "default": "0",
4231
+ "inheritedFrom": {
4232
+ "name": "FoundationInboxBase",
4233
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4234
+ }
4235
+ },
3585
4236
  {
3586
4237
  "kind": "field",
3587
4238
  "name": "searchAlertLog",
@@ -3913,6 +4564,43 @@
3913
4564
  "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
3914
4565
  }
3915
4566
  },
4567
+ {
4568
+ "kind": "method",
4569
+ "name": "refreshChannelRoutes",
4570
+ "privacy": "private",
4571
+ "inheritedFrom": {
4572
+ "name": "FoundationInboxBase",
4573
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4574
+ }
4575
+ },
4576
+ {
4577
+ "kind": "method",
4578
+ "name": "isOwnRoute",
4579
+ "privacy": "private",
4580
+ "return": {
4581
+ "type": {
4582
+ "text": "boolean"
4583
+ }
4584
+ },
4585
+ "parameters": [
4586
+ {
4587
+ "name": "route",
4588
+ "type": {
4589
+ "text": "NotifyRoute"
4590
+ }
4591
+ },
4592
+ {
4593
+ "name": "username",
4594
+ "type": {
4595
+ "text": "string"
4596
+ }
4597
+ }
4598
+ ],
4599
+ "inheritedFrom": {
4600
+ "name": "FoundationInboxBase",
4601
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4602
+ }
4603
+ },
3916
4604
  {
3917
4605
  "kind": "method",
3918
4606
  "name": "findSubscribedRule",
@@ -3957,7 +4645,12 @@
3957
4645
  },
3958
4646
  {
3959
4647
  "kind": "method",
3960
- "name": "handleTemplateToggle",
4648
+ "name": "isChannelAvailable",
4649
+ "return": {
4650
+ "type": {
4651
+ "text": "boolean"
4652
+ }
4653
+ },
3961
4654
  "parameters": [
3962
4655
  {
3963
4656
  "name": "template",
@@ -3966,9 +4659,9 @@
3966
4659
  }
3967
4660
  },
3968
4661
  {
3969
- "name": "event",
4662
+ "name": "channel",
3970
4663
  "type": {
3971
- "text": "Event"
4664
+ "text": "NotifyChannel"
3972
4665
  }
3973
4666
  }
3974
4667
  ],
@@ -3979,13 +4672,23 @@
3979
4672
  },
3980
4673
  {
3981
4674
  "kind": "method",
3982
- "name": "onTemplateSubscribed",
4675
+ "name": "isChannelEnabled",
4676
+ "return": {
4677
+ "type": {
4678
+ "text": "boolean"
4679
+ }
4680
+ },
3983
4681
  "parameters": [
3984
4682
  {
3985
- "name": "templateId",
3986
- "optional": true,
4683
+ "name": "template",
3987
4684
  "type": {
3988
- "text": "string"
4685
+ "text": "RuleTemplate"
4686
+ }
4687
+ },
4688
+ {
4689
+ "name": "channel",
4690
+ "type": {
4691
+ "text": "NotifyChannel"
3989
4692
  }
3990
4693
  }
3991
4694
  ],
@@ -3996,11 +4699,202 @@
3996
4699
  },
3997
4700
  {
3998
4701
  "kind": "method",
3999
- "name": "cancelPendingSubscribe",
4000
- "inheritedFrom": {
4001
- "name": "FoundationInboxBase",
4002
- "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4003
- }
4702
+ "name": "isLastEnabledChannel",
4703
+ "privacy": "private",
4704
+ "return": {
4705
+ "type": {
4706
+ "text": "boolean"
4707
+ }
4708
+ },
4709
+ "parameters": [
4710
+ {
4711
+ "name": "template",
4712
+ "type": {
4713
+ "text": "RuleTemplate"
4714
+ }
4715
+ },
4716
+ {
4717
+ "name": "channel",
4718
+ "type": {
4719
+ "text": "NotifyChannel"
4720
+ }
4721
+ }
4722
+ ],
4723
+ "inheritedFrom": {
4724
+ "name": "FoundationInboxBase",
4725
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4726
+ }
4727
+ },
4728
+ {
4729
+ "kind": "method",
4730
+ "name": "isChannelTogglePending",
4731
+ "return": {
4732
+ "type": {
4733
+ "text": "boolean"
4734
+ }
4735
+ },
4736
+ "parameters": [
4737
+ {
4738
+ "name": "template",
4739
+ "type": {
4740
+ "text": "RuleTemplate"
4741
+ }
4742
+ },
4743
+ {
4744
+ "name": "channel",
4745
+ "type": {
4746
+ "text": "NotifyChannel"
4747
+ }
4748
+ }
4749
+ ],
4750
+ "inheritedFrom": {
4751
+ "name": "FoundationInboxBase",
4752
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4753
+ }
4754
+ },
4755
+ {
4756
+ "kind": "method",
4757
+ "name": "setChannelRoute",
4758
+ "privacy": "private",
4759
+ "parameters": [
4760
+ {
4761
+ "name": "templateId",
4762
+ "type": {
4763
+ "text": "string"
4764
+ }
4765
+ },
4766
+ {
4767
+ "name": "channel",
4768
+ "type": {
4769
+ "text": "NotifyChannel"
4770
+ }
4771
+ },
4772
+ {
4773
+ "name": "route",
4774
+ "type": {
4775
+ "text": "NotifyRoute | null"
4776
+ }
4777
+ }
4778
+ ],
4779
+ "inheritedFrom": {
4780
+ "name": "FoundationInboxBase",
4781
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4782
+ }
4783
+ },
4784
+ {
4785
+ "kind": "method",
4786
+ "name": "setChannelTogglePending",
4787
+ "privacy": "private",
4788
+ "parameters": [
4789
+ {
4790
+ "name": "templateId",
4791
+ "type": {
4792
+ "text": "string"
4793
+ }
4794
+ },
4795
+ {
4796
+ "name": "channel",
4797
+ "type": {
4798
+ "text": "NotifyChannel"
4799
+ }
4800
+ },
4801
+ {
4802
+ "name": "pending",
4803
+ "type": {
4804
+ "text": "boolean"
4805
+ }
4806
+ }
4807
+ ],
4808
+ "inheritedFrom": {
4809
+ "name": "FoundationInboxBase",
4810
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4811
+ }
4812
+ },
4813
+ {
4814
+ "kind": "method",
4815
+ "name": "toggleChannel",
4816
+ "parameters": [
4817
+ {
4818
+ "name": "template",
4819
+ "type": {
4820
+ "text": "RuleTemplate"
4821
+ }
4822
+ },
4823
+ {
4824
+ "name": "channel",
4825
+ "type": {
4826
+ "text": "NotifyChannel"
4827
+ }
4828
+ }
4829
+ ],
4830
+ "inheritedFrom": {
4831
+ "name": "FoundationInboxBase",
4832
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4833
+ }
4834
+ },
4835
+ {
4836
+ "kind": "method",
4837
+ "name": "handleTemplateToggle",
4838
+ "parameters": [
4839
+ {
4840
+ "name": "template",
4841
+ "type": {
4842
+ "text": "RuleTemplate"
4843
+ }
4844
+ },
4845
+ {
4846
+ "name": "event",
4847
+ "type": {
4848
+ "text": "Event"
4849
+ }
4850
+ }
4851
+ ],
4852
+ "inheritedFrom": {
4853
+ "name": "FoundationInboxBase",
4854
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4855
+ }
4856
+ },
4857
+ {
4858
+ "kind": "method",
4859
+ "name": "onTemplateSubscribed",
4860
+ "parameters": [
4861
+ {
4862
+ "name": "templateId",
4863
+ "optional": true,
4864
+ "type": {
4865
+ "text": "string"
4866
+ }
4867
+ }
4868
+ ],
4869
+ "inheritedFrom": {
4870
+ "name": "FoundationInboxBase",
4871
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4872
+ }
4873
+ },
4874
+ {
4875
+ "kind": "method",
4876
+ "name": "ensureDefaultChannel",
4877
+ "privacy": "private",
4878
+ "parameters": [
4879
+ {
4880
+ "name": "template",
4881
+ "type": {
4882
+ "text": "RuleTemplate"
4883
+ }
4884
+ }
4885
+ ],
4886
+ "inheritedFrom": {
4887
+ "name": "FoundationInboxBase",
4888
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4889
+ }
4890
+ },
4891
+ {
4892
+ "kind": "method",
4893
+ "name": "cancelPendingSubscribe",
4894
+ "inheritedFrom": {
4895
+ "name": "FoundationInboxBase",
4896
+ "module": "src/components/foundation-inbox/inbox-base/inbox-base.ts"
4897
+ }
4004
4898
  },
4005
4899
  {
4006
4900
  "kind": "method",
@@ -6102,297 +6996,83 @@
6102
6996
  },
6103
6997
  {
6104
6998
  "kind": "javascript-module",
6105
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
6106
- "declarations": [
6107
- {
6108
- "kind": "variable",
6109
- "name": "ParameterBuilderStyles",
6110
- "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`"
6111
- }
6112
- ],
6113
- "exports": [
6114
- {
6115
- "kind": "js",
6116
- "name": "ParameterBuilderStyles",
6117
- "declaration": {
6118
- "name": "ParameterBuilderStyles",
6119
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
6120
- }
6121
- }
6122
- ]
6123
- },
6124
- {
6125
- "kind": "javascript-module",
6126
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
6999
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
6127
7000
  "declarations": [
6128
7001
  {
6129
7002
  "kind": "variable",
6130
- "name": "ParameterBuilderTemplate",
6131
- "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`"
7003
+ "name": "TemplateConditionBuilderTemplate",
7004
+ "default": "html<TemplateConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.leftValueItems,\n html<Field>`\n <rapid-option value=${(x) => JSON.stringify(x)}>${(x) => x.FIELD_NAME}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n >\n ${repeat(\n (_) => Object.values(LogicalOperator),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select class=\"right-criteria\" :value=${sync((x) => x.rightCriteria)}>\n ${repeat(\n (_) => Object.values(RightCriteria),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html<TemplateConditionBuilder>`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.USER_ENTRY,\n html<TemplateConditionBuilder>`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueSelect)}>\n ${(x) => rightValueItemsOptions(x.rightValueItems)}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
6132
7005
  }
6133
7006
  ],
6134
7007
  "exports": [
6135
7008
  {
6136
7009
  "kind": "js",
6137
- "name": "ParameterBuilderTemplate",
7010
+ "name": "TemplateConditionBuilderTemplate",
6138
7011
  "declaration": {
6139
- "name": "ParameterBuilderTemplate",
6140
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
7012
+ "name": "TemplateConditionBuilderTemplate",
7013
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts"
6141
7014
  }
6142
7015
  }
6143
7016
  ]
6144
7017
  },
6145
7018
  {
6146
7019
  "kind": "javascript-module",
6147
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
7020
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts",
6148
7021
  "declarations": [
6149
7022
  {
6150
7023
  "kind": "class",
6151
- "description": "Parameter builder for notification templates.",
6152
- "name": "ParameterBuilder",
7024
+ "description": "Condition builder for template notification rules.",
7025
+ "name": "TemplateConditionBuilder",
6153
7026
  "members": [
6154
7027
  {
6155
7028
  "kind": "field",
6156
- "name": "parameter",
7029
+ "name": "condition",
6157
7030
  "type": {
6158
- "text": "ParameterBuilderEntity"
7031
+ "text": "ConditionBuilderEntity"
6159
7032
  }
6160
7033
  },
6161
7034
  {
6162
7035
  "kind": "field",
6163
- "name": "name",
7036
+ "name": "parameters",
6164
7037
  "type": {
6165
- "text": "string"
6166
- }
7038
+ "text": "Array<ParameterBuilderEntity>"
7039
+ },
7040
+ "default": "[]"
6167
7041
  },
6168
7042
  {
6169
7043
  "kind": "field",
6170
- "name": "label",
7044
+ "name": "fields",
6171
7045
  "type": {
6172
- "text": "string"
6173
- }
7046
+ "text": "Array<string>"
7047
+ },
7048
+ "default": "[]"
6174
7049
  },
6175
7050
  {
6176
7051
  "kind": "field",
6177
- "name": "type",
7052
+ "name": "isFirst",
6178
7053
  "type": {
6179
- "text": "string"
6180
- }
7054
+ "text": "boolean"
7055
+ },
7056
+ "default": "false"
6181
7057
  },
6182
7058
  {
6183
7059
  "kind": "field",
6184
- "name": "sourceType",
7060
+ "name": "joinOperator",
6185
7061
  "type": {
6186
7062
  "text": "string"
6187
7063
  }
6188
7064
  },
6189
7065
  {
6190
7066
  "kind": "field",
6191
- "name": "sourceSelected",
7067
+ "name": "leftValue",
6192
7068
  "type": {
6193
- "text": "string"
6194
- }
7069
+ "text": "any"
7070
+ },
7071
+ "default": "null"
6195
7072
  },
6196
7073
  {
6197
7074
  "kind": "field",
6198
- "name": "sourceTyped",
6199
- "type": {
6200
- "text": "string"
6201
- }
6202
- },
6203
- {
6204
- "kind": "field",
6205
- "name": "sourceTextField",
6206
- "type": {
6207
- "text": "TextField"
6208
- }
6209
- },
6210
- {
6211
- "kind": "field",
6212
- "name": "sourceSelect",
6213
- "type": {
6214
- "text": "Select"
6215
- }
6216
- },
6217
- {
6218
- "kind": "field",
6219
- "name": "reqRepItems",
6220
- "type": {
6221
- "text": "array"
6222
- },
6223
- "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
6224
- },
6225
- {
6226
- "kind": "method",
6227
- "name": "deleteParameter"
6228
- },
6229
- {
6230
- "kind": "method",
6231
- "name": "parameterChanged"
6232
- },
6233
- {
6234
- "kind": "method",
6235
- "name": "nameChanged"
6236
- },
6237
- {
6238
- "kind": "method",
6239
- "name": "labelChanged"
6240
- },
6241
- {
6242
- "kind": "method",
6243
- "name": "typeChanged"
6244
- },
6245
- {
6246
- "kind": "method",
6247
- "name": "sourceTypeChanged"
6248
- },
6249
- {
6250
- "kind": "method",
6251
- "name": "sourceSelectedChanged"
6252
- },
6253
- {
6254
- "kind": "method",
6255
- "name": "sourceTypedChanged"
6256
- },
6257
- {
6258
- "kind": "method",
6259
- "name": "genericChanged",
6260
- "privacy": "private",
6261
- "parameters": [
6262
- {
6263
- "name": "parameterAttribute"
6264
- },
6265
- {
6266
- "name": "value"
6267
- }
6268
- ]
6269
- }
6270
- ],
6271
- "events": [
6272
- {
6273
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
6274
- "name": "delete"
6275
- },
6276
- {
6277
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
6278
- "name": "edit"
6279
- }
6280
- ],
6281
- "attributes": [
6282
- {
6283
- "name": "parameter",
6284
- "type": {
6285
- "text": "ParameterBuilderEntity"
6286
- },
6287
- "fieldName": "parameter"
6288
- }
6289
- ],
6290
- "superclass": {
6291
- "name": "GenesisElement",
6292
- "package": "@genesislcap/web-core"
6293
- },
6294
- "tagName": "parameter-builder",
6295
- "customElement": true
6296
- }
6297
- ],
6298
- "exports": [
6299
- {
6300
- "kind": "js",
6301
- "name": "ParameterBuilder",
6302
- "declaration": {
6303
- "name": "ParameterBuilder",
6304
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
6305
- }
6306
- },
6307
- {
6308
- "kind": "custom-element-definition",
6309
- "name": "parameter-builder",
6310
- "declaration": {
6311
- "name": "ParameterBuilder",
6312
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
6313
- }
6314
- }
6315
- ]
6316
- },
6317
- {
6318
- "kind": "javascript-module",
6319
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
6320
- "declarations": [
6321
- {
6322
- "kind": "variable",
6323
- "name": "TemplateConditionBuilderTemplate",
6324
- "default": "html<TemplateConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.leftValueItems,\n html<Field>`\n <rapid-option value=${(x) => JSON.stringify(x)}>${(x) => x.FIELD_NAME}</rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n >\n ${repeat(\n (_) => Object.values(LogicalOperator),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select class=\"right-criteria\" :value=${sync((x) => x.rightCriteria)}>\n ${repeat(\n (_) => Object.values(RightCriteria),\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html<TemplateConditionBuilder>`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.USER_ENTRY,\n html<TemplateConditionBuilder>`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueSelect)}>\n ${(x) => rightValueItemsOptions(x.rightValueItems)}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
6325
- }
6326
- ],
6327
- "exports": [
6328
- {
6329
- "kind": "js",
6330
- "name": "TemplateConditionBuilderTemplate",
6331
- "declaration": {
6332
- "name": "TemplateConditionBuilderTemplate",
6333
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts"
6334
- }
6335
- }
6336
- ]
6337
- },
6338
- {
6339
- "kind": "javascript-module",
6340
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.ts",
6341
- "declarations": [
6342
- {
6343
- "kind": "class",
6344
- "description": "Condition builder for template notification rules.",
6345
- "name": "TemplateConditionBuilder",
6346
- "members": [
6347
- {
6348
- "kind": "field",
6349
- "name": "condition",
6350
- "type": {
6351
- "text": "ConditionBuilderEntity"
6352
- }
6353
- },
6354
- {
6355
- "kind": "field",
6356
- "name": "parameters",
6357
- "type": {
6358
- "text": "Array<ParameterBuilderEntity>"
6359
- },
6360
- "default": "[]"
6361
- },
6362
- {
6363
- "kind": "field",
6364
- "name": "fields",
6365
- "type": {
6366
- "text": "Array<string>"
6367
- },
6368
- "default": "[]"
6369
- },
6370
- {
6371
- "kind": "field",
6372
- "name": "isFirst",
6373
- "type": {
6374
- "text": "boolean"
6375
- },
6376
- "default": "false"
6377
- },
6378
- {
6379
- "kind": "field",
6380
- "name": "joinOperator",
6381
- "type": {
6382
- "text": "string"
6383
- }
6384
- },
6385
- {
6386
- "kind": "field",
6387
- "name": "leftValue",
6388
- "type": {
6389
- "text": "any"
6390
- },
6391
- "default": "null"
6392
- },
6393
- {
6394
- "kind": "field",
6395
- "name": "leftValueItems",
7075
+ "name": "leftValueItems",
6396
7076
  "type": {
6397
7077
  "text": "Array<any>"
6398
7078
  },
@@ -6606,6 +7286,220 @@
6606
7286
  }
6607
7287
  ]
6608
7288
  },
7289
+ {
7290
+ "kind": "javascript-module",
7291
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
7292
+ "declarations": [
7293
+ {
7294
+ "kind": "variable",
7295
+ "name": "ParameterBuilderStyles",
7296
+ "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`"
7297
+ }
7298
+ ],
7299
+ "exports": [
7300
+ {
7301
+ "kind": "js",
7302
+ "name": "ParameterBuilderStyles",
7303
+ "declaration": {
7304
+ "name": "ParameterBuilderStyles",
7305
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
7306
+ }
7307
+ }
7308
+ ]
7309
+ },
7310
+ {
7311
+ "kind": "javascript-module",
7312
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
7313
+ "declarations": [
7314
+ {
7315
+ "kind": "variable",
7316
+ "name": "ParameterBuilderTemplate",
7317
+ "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`"
7318
+ }
7319
+ ],
7320
+ "exports": [
7321
+ {
7322
+ "kind": "js",
7323
+ "name": "ParameterBuilderTemplate",
7324
+ "declaration": {
7325
+ "name": "ParameterBuilderTemplate",
7326
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
7327
+ }
7328
+ }
7329
+ ]
7330
+ },
7331
+ {
7332
+ "kind": "javascript-module",
7333
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
7334
+ "declarations": [
7335
+ {
7336
+ "kind": "class",
7337
+ "description": "Parameter builder for notification templates.",
7338
+ "name": "ParameterBuilder",
7339
+ "members": [
7340
+ {
7341
+ "kind": "field",
7342
+ "name": "parameter",
7343
+ "type": {
7344
+ "text": "ParameterBuilderEntity"
7345
+ }
7346
+ },
7347
+ {
7348
+ "kind": "field",
7349
+ "name": "name",
7350
+ "type": {
7351
+ "text": "string"
7352
+ }
7353
+ },
7354
+ {
7355
+ "kind": "field",
7356
+ "name": "label",
7357
+ "type": {
7358
+ "text": "string"
7359
+ }
7360
+ },
7361
+ {
7362
+ "kind": "field",
7363
+ "name": "type",
7364
+ "type": {
7365
+ "text": "string"
7366
+ }
7367
+ },
7368
+ {
7369
+ "kind": "field",
7370
+ "name": "sourceType",
7371
+ "type": {
7372
+ "text": "string"
7373
+ }
7374
+ },
7375
+ {
7376
+ "kind": "field",
7377
+ "name": "sourceSelected",
7378
+ "type": {
7379
+ "text": "string"
7380
+ }
7381
+ },
7382
+ {
7383
+ "kind": "field",
7384
+ "name": "sourceTyped",
7385
+ "type": {
7386
+ "text": "string"
7387
+ }
7388
+ },
7389
+ {
7390
+ "kind": "field",
7391
+ "name": "sourceTextField",
7392
+ "type": {
7393
+ "text": "TextField"
7394
+ }
7395
+ },
7396
+ {
7397
+ "kind": "field",
7398
+ "name": "sourceSelect",
7399
+ "type": {
7400
+ "text": "Select"
7401
+ }
7402
+ },
7403
+ {
7404
+ "kind": "field",
7405
+ "name": "reqRepItems",
7406
+ "type": {
7407
+ "text": "array"
7408
+ },
7409
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
7410
+ },
7411
+ {
7412
+ "kind": "method",
7413
+ "name": "deleteParameter"
7414
+ },
7415
+ {
7416
+ "kind": "method",
7417
+ "name": "parameterChanged"
7418
+ },
7419
+ {
7420
+ "kind": "method",
7421
+ "name": "nameChanged"
7422
+ },
7423
+ {
7424
+ "kind": "method",
7425
+ "name": "labelChanged"
7426
+ },
7427
+ {
7428
+ "kind": "method",
7429
+ "name": "typeChanged"
7430
+ },
7431
+ {
7432
+ "kind": "method",
7433
+ "name": "sourceTypeChanged"
7434
+ },
7435
+ {
7436
+ "kind": "method",
7437
+ "name": "sourceSelectedChanged"
7438
+ },
7439
+ {
7440
+ "kind": "method",
7441
+ "name": "sourceTypedChanged"
7442
+ },
7443
+ {
7444
+ "kind": "method",
7445
+ "name": "genericChanged",
7446
+ "privacy": "private",
7447
+ "parameters": [
7448
+ {
7449
+ "name": "parameterAttribute"
7450
+ },
7451
+ {
7452
+ "name": "value"
7453
+ }
7454
+ ]
7455
+ }
7456
+ ],
7457
+ "events": [
7458
+ {
7459
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
7460
+ "name": "delete"
7461
+ },
7462
+ {
7463
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
7464
+ "name": "edit"
7465
+ }
7466
+ ],
7467
+ "attributes": [
7468
+ {
7469
+ "name": "parameter",
7470
+ "type": {
7471
+ "text": "ParameterBuilderEntity"
7472
+ },
7473
+ "fieldName": "parameter"
7474
+ }
7475
+ ],
7476
+ "superclass": {
7477
+ "name": "GenesisElement",
7478
+ "package": "@genesislcap/web-core"
7479
+ },
7480
+ "tagName": "parameter-builder",
7481
+ "customElement": true
7482
+ }
7483
+ ],
7484
+ "exports": [
7485
+ {
7486
+ "kind": "js",
7487
+ "name": "ParameterBuilder",
7488
+ "declaration": {
7489
+ "name": "ParameterBuilder",
7490
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7491
+ }
7492
+ },
7493
+ {
7494
+ "kind": "custom-element-definition",
7495
+ "name": "parameter-builder",
7496
+ "declaration": {
7497
+ "name": "ParameterBuilder",
7498
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
7499
+ }
7500
+ }
7501
+ ]
7502
+ },
6609
7503
  {
6610
7504
  "kind": "javascript-module",
6611
7505
  "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",