@genesislcap/pbc-notify-ui 15.79.1 → 15.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5984,6 +5984,149 @@
5984
5984
  }
5985
5985
  ]
5986
5986
  },
5987
+ {
5988
+ "kind": "javascript-module",
5989
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
5990
+ "declarations": [
5991
+ {
5992
+ "kind": "variable",
5993
+ "name": "noItemsClass",
5994
+ "type": {
5995
+ "text": "string"
5996
+ },
5997
+ "default": "'no-items'",
5998
+ "description": "Class to use when there are no items"
5999
+ },
6000
+ {
6001
+ "kind": "variable",
6002
+ "name": "FoundationInboxCounterStyles",
6003
+ "default": "css`\n :host {\n display: inline-block;\n min-width: 16px;\n height: 16px;\n border-radius: 9px;\n text-align: center;\n color: #fff;\n line-height: 16px;\n font-size: 9px;\n font-weight: 700;\n background: ${BACKGROUND_COLOR};\n pointer-events: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n :host(.${noItemsClass}) {\n display: none;\n }\n`"
6004
+ }
6005
+ ],
6006
+ "exports": [
6007
+ {
6008
+ "kind": "js",
6009
+ "name": "noItemsClass",
6010
+ "declaration": {
6011
+ "name": "noItemsClass",
6012
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
6013
+ }
6014
+ },
6015
+ {
6016
+ "kind": "js",
6017
+ "name": "FoundationInboxCounterStyles",
6018
+ "declaration": {
6019
+ "name": "FoundationInboxCounterStyles",
6020
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
6021
+ }
6022
+ }
6023
+ ]
6024
+ },
6025
+ {
6026
+ "kind": "javascript-module",
6027
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts",
6028
+ "declarations": [
6029
+ {
6030
+ "kind": "variable",
6031
+ "name": "FoundationInboxCounterTemplate",
6032
+ "default": "html<FoundationInboxCounter>`\n <template class=\"${(x) => classNames([noItemsClass, x.value < 1])}\">\n ${when(\n (x) => x.value > 0,\n html`\n ${(x) => (x.value > MAX_NUMBER_TO_DISPLAY ? `${MAX_NUMBER_TO_DISPLAY}+` : x.value)}\n `,\n )}\n </template>\n`"
6033
+ }
6034
+ ],
6035
+ "exports": [
6036
+ {
6037
+ "kind": "js",
6038
+ "name": "FoundationInboxCounterTemplate",
6039
+ "declaration": {
6040
+ "name": "FoundationInboxCounterTemplate",
6041
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts"
6042
+ }
6043
+ }
6044
+ ]
6045
+ },
6046
+ {
6047
+ "kind": "javascript-module",
6048
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts",
6049
+ "declarations": [
6050
+ {
6051
+ "kind": "class",
6052
+ "description": "",
6053
+ "name": "FoundationInboxCounter",
6054
+ "members": [
6055
+ {
6056
+ "kind": "field",
6057
+ "name": "value",
6058
+ "type": {
6059
+ "text": "number"
6060
+ },
6061
+ "default": "0"
6062
+ },
6063
+ {
6064
+ "kind": "field",
6065
+ "name": "connect",
6066
+ "type": {
6067
+ "text": "Connect"
6068
+ }
6069
+ },
6070
+ {
6071
+ "kind": "field",
6072
+ "name": "inboxService",
6073
+ "type": {
6074
+ "text": "FoundationInboxService"
6075
+ }
6076
+ },
6077
+ {
6078
+ "kind": "field",
6079
+ "name": "connectionSub",
6080
+ "type": {
6081
+ "text": "Subscription"
6082
+ },
6083
+ "privacy": "private"
6084
+ },
6085
+ {
6086
+ "kind": "method",
6087
+ "name": "subscribeToAlerts",
6088
+ "privacy": "private",
6089
+ "return": {
6090
+ "type": {
6091
+ "text": "Promise<void>"
6092
+ }
6093
+ },
6094
+ "description": "Subscribes to alerts from the inbox service"
6095
+ },
6096
+ {
6097
+ "kind": "field",
6098
+ "name": "subscriptionHandler",
6099
+ "privacy": "private",
6100
+ "description": "Handles subscription updates from the inbox service"
6101
+ }
6102
+ ],
6103
+ "superclass": {
6104
+ "name": "GenesisElement",
6105
+ "package": "@genesislcap/web-core"
6106
+ },
6107
+ "tagName": "foundation-inbox-counter",
6108
+ "customElement": true
6109
+ }
6110
+ ],
6111
+ "exports": [
6112
+ {
6113
+ "kind": "js",
6114
+ "name": "FoundationInboxCounter",
6115
+ "declaration": {
6116
+ "name": "FoundationInboxCounter",
6117
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
6118
+ }
6119
+ },
6120
+ {
6121
+ "kind": "custom-element-definition",
6122
+ "name": "foundation-inbox-counter",
6123
+ "declaration": {
6124
+ "name": "FoundationInboxCounter",
6125
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
6126
+ }
6127
+ }
6128
+ ]
6129
+ },
5987
6130
  {
5988
6131
  "kind": "javascript-module",
5989
6132
  "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts",
@@ -7384,244 +7527,101 @@
7384
7527
  },
7385
7528
  {
7386
7529
  "kind": "javascript-module",
7387
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
7530
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts",
7388
7531
  "declarations": [
7389
7532
  {
7390
7533
  "kind": "variable",
7391
- "name": "noItemsClass",
7392
- "type": {
7393
- "text": "string"
7394
- },
7395
- "default": "'no-items'",
7396
- "description": "Class to use when there are no items"
7397
- },
7398
- {
7399
- "kind": "variable",
7400
- "name": "FoundationInboxCounterStyles",
7401
- "default": "css`\n :host {\n display: inline-block;\n min-width: 16px;\n height: 16px;\n border-radius: 9px;\n text-align: center;\n color: #fff;\n line-height: 16px;\n font-size: 9px;\n font-weight: 700;\n background: ${BACKGROUND_COLOR};\n pointer-events: none;\n }\n\n .hidden {\n visibility: hidden;\n }\n\n :host(.${noItemsClass}) {\n display: none;\n }\n`"
7534
+ "name": "InboxSubscriptionStyles",
7535
+ "default": "css`\n .inbox-subscription {\n display: flex;\n flex-direction: column;\n }\n\n .inbox-subscription.inline {\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .inbox-subscription-header {\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription-empty {\n padding: 0 calc(var(--design-unit) * 2px);\n margin: calc(var(--design-unit) * 2px) 0 0;\n }\n\n .inbox-subscription-content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 3px);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-content {\n overflow: auto;\n max-height: calc(var(--design-unit) * 80px);\n }\n\n .inbox-subscription.inline .inbox-subscription-content {\n margin: calc(var(--design-unit) * 2px) 0 0;\n overflow: visible;\n max-height: none;\n padding-bottom: calc(var(--design-unit) * 4px);\n }\n\n .inbox-subscription.inline .control:focus-within {\n position: relative;\n z-index: 2;\n }\n\n .inbox-subscription-footer {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px) 0 0;\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-footer {\n padding: calc(var(--design-unit) * 2px);\n margin-top: 0;\n }\n\n .inbox-subscription-footer.auto-submit {\n justify-content: flex-end;\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n }\n\n rapid-button.subscribe,\n rapid-button.cancel {\n display: flex;\n margin: 0;\n flex: 1;\n }\n`"
7402
7536
  }
7403
7537
  ],
7404
7538
  "exports": [
7405
7539
  {
7406
7540
  "kind": "js",
7407
- "name": "noItemsClass",
7408
- "declaration": {
7409
- "name": "noItemsClass",
7410
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
7411
- }
7412
- },
7413
- {
7414
- "kind": "js",
7415
- "name": "FoundationInboxCounterStyles",
7541
+ "name": "InboxSubscriptionStyles",
7416
7542
  "declaration": {
7417
- "name": "FoundationInboxCounterStyles",
7418
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
7543
+ "name": "InboxSubscriptionStyles",
7544
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts"
7419
7545
  }
7420
7546
  }
7421
7547
  ]
7422
7548
  },
7423
7549
  {
7424
7550
  "kind": "javascript-module",
7425
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts",
7551
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts",
7426
7552
  "declarations": [
7427
7553
  {
7428
7554
  "kind": "variable",
7429
- "name": "FoundationInboxCounterTemplate",
7430
- "default": "html<FoundationInboxCounter>`\n <template class=\"${(x) => classNames([noItemsClass, x.value < 1])}\">\n ${when(\n (x) => x.value > 0,\n html`\n ${(x) => (x.value > MAX_NUMBER_TO_DISPLAY ? `${MAX_NUMBER_TO_DISPLAY}+` : x.value)}\n `,\n )}\n </template>\n`"
7555
+ "name": "InboxSubscriptionTemplate",
7556
+ "default": "html<InboxSubscription>`\n <div class=\"inbox-subscription ${(x) => (x.inline ? 'inline' : '')}\">\n ${when(\n (x) => !x.inline,\n html`\n <div class=\"inbox-subscription-header\">\n Subscribe to\n <span style=\"font-weight: bold;\">${(x) => x.template.RULE_NAME}</span>\n </div>\n `,\n )}\n ${when(\n (x) => x.visibleParameters.length === 0,\n html`\n <p class=\"inbox-subscription-empty\">The selected template doesn't have parameters.</p>\n `,\n )}\n ${when(\n (x) => x.visibleParameters.length > 0,\n html`\n <div class=\"inbox-subscription-content\">\n ${repeat(\n (x) => x.visibleParameters,\n html<RuleParameterEntity>`\n <rule-parameter\n :parameter=${(x) => x}\n :isFirstElement=${(x, c) => c.parent.isFirstElement(x)}\n :operator=${(x, c) => c.parent.parametersOperators[x.PARAM_NAME]}\n :requireSelection=${(x, c) => c.parent.usesAutoSubmit()}\n @parameterEdited=${(x, c) => c.parent.parameterEdit(eventDetail(c))}\n ></rule-parameter>\n `,\n )}\n </div>\n `,\n )}\n ${when(\n (x) => !x.inline || x.requiresManualSubscribe(),\n html`\n <div class=\"inbox-subscription-footer\">\n ${when(\n (x) => x.inline,\n html`\n <rapid-button\n class=\"cancel\"\n appearance=\"neutral\"\n @click=${(x) => x.cancelSubscribe()}\n >\n Cancel\n </rapid-button>\n `,\n )}\n <rapid-button\n class=\"subscribe\"\n appearance=\"primary\"\n @click=${(x) => x.subscribeTemplate()}\n ?disabled=${(x) => x.subscribeDisabled}\n >\n Subscribe\n </rapid-button>\n </div>\n `,\n )}\n ${when(\n (x) => x.inline && x.usesAutoSubmit(),\n html`\n <div class=\"inbox-subscription-footer auto-submit\">\n <rapid-button class=\"cancel\" appearance=\"neutral\" @click=${(x) => x.cancelSubscribe()}>\n Cancel\n </rapid-button>\n </div>\n `,\n )}\n </div>\n`"
7431
7557
  }
7432
7558
  ],
7433
7559
  "exports": [
7434
7560
  {
7435
7561
  "kind": "js",
7436
- "name": "FoundationInboxCounterTemplate",
7562
+ "name": "InboxSubscriptionTemplate",
7437
7563
  "declaration": {
7438
- "name": "FoundationInboxCounterTemplate",
7439
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts"
7564
+ "name": "InboxSubscriptionTemplate",
7565
+ "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts"
7440
7566
  }
7441
7567
  }
7442
7568
  ]
7443
7569
  },
7444
7570
  {
7445
7571
  "kind": "javascript-module",
7446
- "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts",
7572
+ "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts",
7447
7573
  "declarations": [
7448
7574
  {
7449
7575
  "kind": "class",
7450
- "description": "",
7451
- "name": "FoundationInboxCounter",
7576
+ "description": "Inbox subscription configuration UI.",
7577
+ "name": "InboxSubscription",
7452
7578
  "members": [
7453
7579
  {
7454
7580
  "kind": "field",
7455
- "name": "value",
7581
+ "name": "template"
7582
+ },
7583
+ {
7584
+ "kind": "field",
7585
+ "name": "inline",
7456
7586
  "type": {
7457
- "text": "number"
7587
+ "text": "boolean"
7458
7588
  },
7459
- "default": "0"
7589
+ "default": "false"
7460
7590
  },
7461
7591
  {
7462
7592
  "kind": "field",
7463
- "name": "connect",
7593
+ "name": "extraParameterDetails",
7464
7594
  "type": {
7465
- "text": "Connect"
7466
- }
7595
+ "text": "Record<string, string>"
7596
+ },
7597
+ "default": "{}",
7598
+ "description": "Merged into subscribe payload (e.g. CHANNEL topic). Hidden from the form."
7467
7599
  },
7468
7600
  {
7469
7601
  "kind": "field",
7470
- "name": "inboxService",
7602
+ "name": "parametersDetails",
7471
7603
  "type": {
7472
- "text": "FoundationInboxService"
7473
- }
7604
+ "text": "object"
7605
+ },
7606
+ "privacy": "private",
7607
+ "default": "{}"
7474
7608
  },
7475
7609
  {
7476
7610
  "kind": "field",
7477
- "name": "connectionSub",
7611
+ "name": "isSubmitting",
7478
7612
  "type": {
7479
- "text": "Subscription"
7613
+ "text": "boolean"
7480
7614
  },
7481
- "privacy": "private"
7615
+ "privacy": "private",
7616
+ "default": "false"
7482
7617
  },
7483
7618
  {
7484
- "kind": "method",
7485
- "name": "subscribeToAlerts",
7486
- "privacy": "private",
7487
- "return": {
7488
- "type": {
7489
- "text": "Promise<void>"
7490
- }
7619
+ "kind": "field",
7620
+ "name": "parametersOperators",
7621
+ "type": {
7622
+ "text": "object"
7491
7623
  },
7492
- "description": "Subscribes to alerts from the inbox service"
7493
- },
7494
- {
7495
- "kind": "field",
7496
- "name": "subscriptionHandler",
7497
- "privacy": "private",
7498
- "description": "Handles subscription updates from the inbox service"
7499
- }
7500
- ],
7501
- "superclass": {
7502
- "name": "GenesisElement",
7503
- "package": "@genesislcap/web-core"
7504
- },
7505
- "tagName": "foundation-inbox-counter",
7506
- "customElement": true
7507
- }
7508
- ],
7509
- "exports": [
7510
- {
7511
- "kind": "js",
7512
- "name": "FoundationInboxCounter",
7513
- "declaration": {
7514
- "name": "FoundationInboxCounter",
7515
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
7516
- }
7517
- },
7518
- {
7519
- "kind": "custom-element-definition",
7520
- "name": "foundation-inbox-counter",
7521
- "declaration": {
7522
- "name": "FoundationInboxCounter",
7523
- "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts"
7524
- }
7525
- }
7526
- ]
7527
- },
7528
- {
7529
- "kind": "javascript-module",
7530
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts",
7531
- "declarations": [
7532
- {
7533
- "kind": "variable",
7534
- "name": "InboxSubscriptionStyles",
7535
- "default": "css`\n .inbox-subscription {\n display: flex;\n flex-direction: column;\n }\n\n .inbox-subscription.inline {\n margin-top: calc(var(--design-unit) * 2px);\n padding-top: calc(var(--design-unit) * 2px);\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .inbox-subscription-header {\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-bottom: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription-empty {\n padding: 0 calc(var(--design-unit) * 2px);\n margin: calc(var(--design-unit) * 2px) 0 0;\n }\n\n .inbox-subscription-content {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 3px);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px);\n border-radius: calc(var(--control-corner-radius) * 1px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-content {\n overflow: auto;\n max-height: calc(var(--design-unit) * 80px);\n }\n\n .inbox-subscription.inline .inbox-subscription-content {\n margin: calc(var(--design-unit) * 2px) 0 0;\n overflow: visible;\n max-height: none;\n padding-bottom: calc(var(--design-unit) * 4px);\n }\n\n .inbox-subscription.inline .control:focus-within {\n position: relative;\n z-index: 2;\n }\n\n .inbox-subscription-footer {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n padding: calc(var(--design-unit) * 2px) 0 0;\n border-top: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .inbox-subscription:not(.inline) .inbox-subscription-footer {\n padding: calc(var(--design-unit) * 2px);\n margin-top: 0;\n }\n\n .inbox-subscription-footer.auto-submit {\n justify-content: flex-end;\n border-top: none;\n margin-top: 0;\n padding-top: 0;\n }\n\n rapid-button.subscribe,\n rapid-button.cancel {\n display: flex;\n margin: 0;\n flex: 1;\n }\n`"
7536
- }
7537
- ],
7538
- "exports": [
7539
- {
7540
- "kind": "js",
7541
- "name": "InboxSubscriptionStyles",
7542
- "declaration": {
7543
- "name": "InboxSubscriptionStyles",
7544
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts"
7545
- }
7546
- }
7547
- ]
7548
- },
7549
- {
7550
- "kind": "javascript-module",
7551
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts",
7552
- "declarations": [
7553
- {
7554
- "kind": "variable",
7555
- "name": "InboxSubscriptionTemplate",
7556
- "default": "html<InboxSubscription>`\n <div class=\"inbox-subscription ${(x) => (x.inline ? 'inline' : '')}\">\n ${when(\n (x) => !x.inline,\n html`\n <div class=\"inbox-subscription-header\">\n Subscribe to\n <span style=\"font-weight: bold;\">${(x) => x.template.RULE_NAME}</span>\n </div>\n `,\n )}\n ${when(\n (x) => x.visibleParameters.length === 0,\n html`\n <p class=\"inbox-subscription-empty\">The selected template doesn't have parameters.</p>\n `,\n )}\n ${when(\n (x) => x.visibleParameters.length > 0,\n html`\n <div class=\"inbox-subscription-content\">\n ${repeat(\n (x) => x.visibleParameters,\n html<RuleParameterEntity>`\n <rule-parameter\n :parameter=${(x) => x}\n :isFirstElement=${(x, c) => c.parent.isFirstElement(x)}\n :operator=${(x, c) => c.parent.parametersOperators[x.PARAM_NAME]}\n :requireSelection=${(x, c) => c.parent.usesAutoSubmit()}\n @parameterEdited=${(x, c) => c.parent.parameterEdit(eventDetail(c))}\n ></rule-parameter>\n `,\n )}\n </div>\n `,\n )}\n ${when(\n (x) => !x.inline || x.requiresManualSubscribe(),\n html`\n <div class=\"inbox-subscription-footer\">\n ${when(\n (x) => x.inline,\n html`\n <rapid-button\n class=\"cancel\"\n appearance=\"neutral\"\n @click=${(x) => x.cancelSubscribe()}\n >\n Cancel\n </rapid-button>\n `,\n )}\n <rapid-button\n class=\"subscribe\"\n appearance=\"primary\"\n @click=${(x) => x.subscribeTemplate()}\n ?disabled=${(x) => x.subscribeDisabled}\n >\n Subscribe\n </rapid-button>\n </div>\n `,\n )}\n ${when(\n (x) => x.inline && x.usesAutoSubmit(),\n html`\n <div class=\"inbox-subscription-footer auto-submit\">\n <rapid-button class=\"cancel\" appearance=\"neutral\" @click=${(x) => x.cancelSubscribe()}>\n Cancel\n </rapid-button>\n </div>\n `,\n )}\n </div>\n`"
7557
- }
7558
- ],
7559
- "exports": [
7560
- {
7561
- "kind": "js",
7562
- "name": "InboxSubscriptionTemplate",
7563
- "declaration": {
7564
- "name": "InboxSubscriptionTemplate",
7565
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts"
7566
- }
7567
- }
7568
- ]
7569
- },
7570
- {
7571
- "kind": "javascript-module",
7572
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts",
7573
- "declarations": [
7574
- {
7575
- "kind": "class",
7576
- "description": "Inbox subscription configuration UI.",
7577
- "name": "InboxSubscription",
7578
- "members": [
7579
- {
7580
- "kind": "field",
7581
- "name": "template"
7582
- },
7583
- {
7584
- "kind": "field",
7585
- "name": "inline",
7586
- "type": {
7587
- "text": "boolean"
7588
- },
7589
- "default": "false"
7590
- },
7591
- {
7592
- "kind": "field",
7593
- "name": "extraParameterDetails",
7594
- "type": {
7595
- "text": "Record<string, string>"
7596
- },
7597
- "default": "{}",
7598
- "description": "Merged into subscribe payload (e.g. CHANNEL topic). Hidden from the form."
7599
- },
7600
- {
7601
- "kind": "field",
7602
- "name": "parametersDetails",
7603
- "type": {
7604
- "text": "object"
7605
- },
7606
- "privacy": "private",
7607
- "default": "{}"
7608
- },
7609
- {
7610
- "kind": "field",
7611
- "name": "isSubmitting",
7612
- "type": {
7613
- "text": "boolean"
7614
- },
7615
- "privacy": "private",
7616
- "default": "false"
7617
- },
7618
- {
7619
- "kind": "field",
7620
- "name": "parametersOperators",
7621
- "type": {
7622
- "text": "object"
7623
- },
7624
- "default": "{}"
7624
+ "default": "{}"
7625
7625
  },
7626
7626
  {
7627
7627
  "kind": "field",
@@ -9987,39 +9987,39 @@
9987
9987
  },
9988
9988
  {
9989
9989
  "kind": "javascript-module",
9990
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
9990
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
9991
9991
  "declarations": [
9992
9992
  {
9993
9993
  "kind": "variable",
9994
- "name": "RuleConditionGroupTemplate",
9995
- "default": "html<RuleConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, RuleConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <rule-condition-group\n :fields=${(x, c) => c.parent.fields}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <rule-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
9994
+ "name": "RuleConditionBuilderTemplate",
9995
+ "default": "html<RuleConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n title=${(x) => (x.leftValue ? JSON.parse(x.leftValue).FIELD_NAME : '')}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.getAllFields(),\n html`\n <rapid-option value=${(x) => JSON.stringify(x)} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n title=${(x) => x.logicalOperator}\n >\n ${repeat(\n (x) => x.getLogicalOperators(),\n html`\n <rapid-option value=${(x) => x.operator} title=${(x) => x}>\n ${(x) => x.label}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select\n class=\"right-criteria\"\n :value=${sync((x) => x.rightCriteria)}\n title=${(x) => x.rightCriteria}\n >\n ${repeat(\n (x) => x.getRightCriteria(),\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATE,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"date\"\n ></rapid-text-field>\n `,\n html`\n ${whenElse(\n (x) =>\n JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATETIME,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"datetime-local\"\n ></rapid-text-field>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.FIELD,\n html`\n <rapid-select\n class=\"right-criteria-select\"\n :value=${sync((x) => x.rightValueSelect)}\n title=${(x) => x.rightValueSelect}\n >\n ${repeat(\n (x) => x.getApplicableFields(),\n html`\n <rapid-option value=${(x) => x.FIELD_NAME} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
9996
9996
  }
9997
9997
  ],
9998
9998
  "exports": [
9999
9999
  {
10000
10000
  "kind": "js",
10001
- "name": "RuleConditionGroupTemplate",
10001
+ "name": "RuleConditionBuilderTemplate",
10002
10002
  "declaration": {
10003
- "name": "RuleConditionGroupTemplate",
10004
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
10003
+ "name": "RuleConditionBuilderTemplate",
10004
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
10005
10005
  }
10006
10006
  }
10007
10007
  ]
10008
10008
  },
10009
10009
  {
10010
10010
  "kind": "javascript-module",
10011
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
10011
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
10012
10012
  "declarations": [
10013
10013
  {
10014
10014
  "kind": "class",
10015
- "description": "Parenthesized group of conditions/nested groups for notification rule\ncriteria, joined to the previous sibling via AND/OR like a single\ncondition row - but bracketing its own children off from the rest of the\nlist, so e.g. \"(A && B) || C\" can be expressed without the AND silently\nspanning more than intended.",
10016
- "name": "RuleConditionGroup",
10015
+ "description": "Condition builder for notification rule criteria.",
10016
+ "name": "RuleConditionBuilder",
10017
10017
  "members": [
10018
10018
  {
10019
10019
  "kind": "field",
10020
- "name": "node",
10020
+ "name": "condition",
10021
10021
  "type": {
10022
- "text": "ConditionGroupEntity"
10022
+ "text": "ConditionBuilderEntity"
10023
10023
  }
10024
10024
  },
10025
10025
  {
@@ -10047,15 +10047,66 @@
10047
10047
  },
10048
10048
  {
10049
10049
  "kind": "field",
10050
- "name": "groupChildren",
10050
+ "name": "leftValue",
10051
10051
  "type": {
10052
- "text": "ConditionNode[]"
10052
+ "text": "string"
10053
+ },
10054
+ "default": "null"
10055
+ },
10056
+ {
10057
+ "kind": "field",
10058
+ "name": "leftValueItems",
10059
+ "type": {
10060
+ "text": "Array<any>"
10061
+ },
10062
+ "default": "[]"
10063
+ },
10064
+ {
10065
+ "kind": "field",
10066
+ "name": "logicalOperator",
10067
+ "type": {
10068
+ "text": "string"
10069
+ },
10070
+ "default": "null"
10071
+ },
10072
+ {
10073
+ "kind": "field",
10074
+ "name": "rightCriteria",
10075
+ "type": {
10076
+ "text": "string"
10077
+ }
10078
+ },
10079
+ {
10080
+ "kind": "field",
10081
+ "name": "rightValueText",
10082
+ "type": {
10083
+ "text": "string"
10084
+ },
10085
+ "default": "null"
10086
+ },
10087
+ {
10088
+ "kind": "field",
10089
+ "name": "rightValueSelect",
10090
+ "type": {
10091
+ "text": "string"
10092
+ },
10093
+ "default": "null"
10094
+ },
10095
+ {
10096
+ "kind": "field",
10097
+ "name": "rightValueMultiSelect",
10098
+ "type": {
10099
+ "text": "string[]"
10053
10100
  },
10054
10101
  "default": "[]"
10055
10102
  },
10056
10103
  {
10057
10104
  "kind": "method",
10058
- "name": "nodeChanged"
10105
+ "name": "deleteCondition"
10106
+ },
10107
+ {
10108
+ "kind": "method",
10109
+ "name": "conditionChanged"
10059
10110
  },
10060
10111
  {
10061
10112
  "kind": "method",
@@ -10063,243 +10114,42 @@
10063
10114
  },
10064
10115
  {
10065
10116
  "kind": "method",
10066
- "name": "newCondition"
10117
+ "name": "fieldsChanged"
10067
10118
  },
10068
10119
  {
10069
10120
  "kind": "method",
10070
- "name": "newGroup"
10121
+ "name": "assignLeftValue",
10122
+ "privacy": "private"
10071
10123
  },
10072
10124
  {
10073
10125
  "kind": "method",
10074
- "name": "editChild",
10075
- "parameters": [
10076
- {
10077
- "name": "_editedChild",
10078
- "type": {
10079
- "text": "ConditionNode"
10080
- }
10126
+ "name": "assignRightValue"
10127
+ },
10128
+ {
10129
+ "kind": "method",
10130
+ "name": "getRightCriteria",
10131
+ "return": {
10132
+ "type": {
10133
+ "text": "Array<any>"
10081
10134
  }
10082
- ]
10135
+ }
10083
10136
  },
10084
10137
  {
10085
10138
  "kind": "method",
10086
- "name": "deleteChild",
10087
- "parameters": [
10088
- {
10089
- "name": "deletedChild",
10090
- "type": {
10091
- "text": "ConditionNode"
10092
- }
10139
+ "name": "getLogicalOperators",
10140
+ "return": {
10141
+ "type": {
10142
+ "text": "Array<any>"
10093
10143
  }
10094
- ]
10144
+ }
10095
10145
  },
10096
10146
  {
10097
10147
  "kind": "method",
10098
- "name": "deleteSelf"
10099
- }
10100
- ],
10101
- "events": [
10148
+ "name": "leftValueChanged"
10149
+ },
10102
10150
  {
10103
- "description": "Fired when this whole group should be removed",
10104
- "name": "delete"
10105
- },
10106
- {
10107
- "description": "Fired when anything inside this group changes",
10108
- "name": "edit"
10109
- }
10110
- ],
10111
- "superclass": {
10112
- "name": "GenesisElement",
10113
- "package": "@genesislcap/web-core"
10114
- },
10115
- "tagName": "rule-condition-group",
10116
- "customElement": true
10117
- }
10118
- ],
10119
- "exports": [
10120
- {
10121
- "kind": "js",
10122
- "name": "RuleConditionGroup",
10123
- "declaration": {
10124
- "name": "RuleConditionGroup",
10125
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10126
- }
10127
- },
10128
- {
10129
- "kind": "custom-element-definition",
10130
- "name": "rule-condition-group",
10131
- "declaration": {
10132
- "name": "RuleConditionGroup",
10133
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10134
- }
10135
- }
10136
- ]
10137
- },
10138
- {
10139
- "kind": "javascript-module",
10140
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
10141
- "declarations": [
10142
- {
10143
- "kind": "variable",
10144
- "name": "RuleConditionBuilderTemplate",
10145
- "default": "html<RuleConditionBuilder>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-builder\">\n <rapid-select\n :value=${sync((x) => x.leftValue)}\n :initialValue=${sync((x) => x.leftValue)}\n title=${(x) => (x.leftValue ? JSON.parse(x.leftValue).FIELD_NAME : '')}\n class=\"left-value\"\n >\n ${repeat(\n (x) => x.getAllFields(),\n html`\n <rapid-option value=${(x) => JSON.stringify(x)} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n <rapid-select\n class=\"logical-operator${(x) =>\n classNames([\n '-null-and-blank',\n nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n ])}\"\n :value=${sync((x) => x.logicalOperator)}\n title=${(x) => x.logicalOperator}\n >\n ${repeat(\n (x) => x.getLogicalOperators(),\n html`\n <rapid-option value=${(x) => x.operator} title=${(x) => x}>\n ${(x) => x.label}\n </rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => !nullAndBlankLogicalOperatorValues.includes(LogicalOperator[x.logicalOperator]),\n html`\n <rapid-select\n class=\"right-criteria\"\n :value=${sync((x) => x.rightCriteria)}\n title=${(x) => x.rightCriteria}\n >\n ${repeat(\n (x) => x.getRightCriteria(),\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n\n ${when(\n (x) => x.rightCriteria === RightCriteria.VALUE,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.BOOLEAN,\n html`\n <rapid-select class=\"right-criteria-select\" :value=${sync((x) => x.rightValueText)}>\n <rapid-option value=\"true\">true</rapid-option>\n <rapid-option value=\"false\">false</rapid-option>\n </rapid-select>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === 'ENUM',\n html`\n <rapid-multiselect\n class=\"right-criteria-select\"\n :selectedOptions=${(x) => x.rightValueMultiSelect}\n @selectionChange=${(x, c) => {\n x.rightValueMultiSelect = (c.event as CustomEvent).detail;\n }}\n search=\"true\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${(x) => x.getEnumValues().map((value) => ({ value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n `,\n html`\n ${whenElse(\n (x) => JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATE,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"date\"\n ></rapid-text-field>\n `,\n html`\n ${whenElse(\n (x) =>\n JSON.parse(x.leftValue ?? '{}').FIELD_TYPE === FieldTypeEnum.DATETIME,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n type=\"datetime-local\"\n ></rapid-text-field>\n `,\n html`\n <rapid-text-field\n class=\"right-criteria-text\"\n :value=${sync((x) => x.rightValueText)}\n placeholder=\"Value (comma-separate for multiple)\"\n autocomplete=\"off\"\n ></rapid-text-field>\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n `,\n )}\n ${when(\n (x) => x.rightCriteria === RightCriteria.FIELD,\n html`\n <rapid-select\n class=\"right-criteria-select\"\n :value=${sync((x) => x.rightValueSelect)}\n title=${(x) => x.rightValueSelect}\n >\n ${repeat(\n (x) => x.getApplicableFields(),\n html`\n <rapid-option value=${(x) => x.FIELD_NAME} title=${(x) => x.FIELD_NAME}>\n ${(x) => x.FIELD_NAME}\n </rapid-option>\n `,\n )}\n </rapid-select>\n `,\n )}\n `,\n )}\n\n <rapid-button appearance=\"icon\" class=\"delete\" @click=${(x) => x.deleteCondition()}>\n <rapid-icon\n style=\"opacity: 0.5\"\n variant=\"regular\"\n name=\"trash-alt\"\n size=\"lg\"\n part=\"icon\"\n ></rapid-icon>\n </rapid-button>\n </div>\n`"
10146
- }
10147
- ],
10148
- "exports": [
10149
- {
10150
- "kind": "js",
10151
- "name": "RuleConditionBuilderTemplate",
10152
- "declaration": {
10153
- "name": "RuleConditionBuilderTemplate",
10154
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
10155
- }
10156
- }
10157
- ]
10158
- },
10159
- {
10160
- "kind": "javascript-module",
10161
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
10162
- "declarations": [
10163
- {
10164
- "kind": "class",
10165
- "description": "Condition builder for notification rule criteria.",
10166
- "name": "RuleConditionBuilder",
10167
- "members": [
10168
- {
10169
- "kind": "field",
10170
- "name": "condition",
10171
- "type": {
10172
- "text": "ConditionBuilderEntity"
10173
- }
10174
- },
10175
- {
10176
- "kind": "field",
10177
- "name": "fields",
10178
- "type": {
10179
- "text": "Field[]"
10180
- },
10181
- "default": "[]"
10182
- },
10183
- {
10184
- "kind": "field",
10185
- "name": "isFirst",
10186
- "type": {
10187
- "text": "boolean"
10188
- },
10189
- "default": "false"
10190
- },
10191
- {
10192
- "kind": "field",
10193
- "name": "joinOperator",
10194
- "type": {
10195
- "text": "string"
10196
- }
10197
- },
10198
- {
10199
- "kind": "field",
10200
- "name": "leftValue",
10201
- "type": {
10202
- "text": "string"
10203
- },
10204
- "default": "null"
10205
- },
10206
- {
10207
- "kind": "field",
10208
- "name": "leftValueItems",
10209
- "type": {
10210
- "text": "Array<any>"
10211
- },
10212
- "default": "[]"
10213
- },
10214
- {
10215
- "kind": "field",
10216
- "name": "logicalOperator",
10217
- "type": {
10218
- "text": "string"
10219
- },
10220
- "default": "null"
10221
- },
10222
- {
10223
- "kind": "field",
10224
- "name": "rightCriteria",
10225
- "type": {
10226
- "text": "string"
10227
- }
10228
- },
10229
- {
10230
- "kind": "field",
10231
- "name": "rightValueText",
10232
- "type": {
10233
- "text": "string"
10234
- },
10235
- "default": "null"
10236
- },
10237
- {
10238
- "kind": "field",
10239
- "name": "rightValueSelect",
10240
- "type": {
10241
- "text": "string"
10242
- },
10243
- "default": "null"
10244
- },
10245
- {
10246
- "kind": "field",
10247
- "name": "rightValueMultiSelect",
10248
- "type": {
10249
- "text": "string[]"
10250
- },
10251
- "default": "[]"
10252
- },
10253
- {
10254
- "kind": "method",
10255
- "name": "deleteCondition"
10256
- },
10257
- {
10258
- "kind": "method",
10259
- "name": "conditionChanged"
10260
- },
10261
- {
10262
- "kind": "method",
10263
- "name": "joinOperatorChanged"
10264
- },
10265
- {
10266
- "kind": "method",
10267
- "name": "fieldsChanged"
10268
- },
10269
- {
10270
- "kind": "method",
10271
- "name": "assignLeftValue",
10272
- "privacy": "private"
10273
- },
10274
- {
10275
- "kind": "method",
10276
- "name": "assignRightValue"
10277
- },
10278
- {
10279
- "kind": "method",
10280
- "name": "getRightCriteria",
10281
- "return": {
10282
- "type": {
10283
- "text": "Array<any>"
10284
- }
10285
- }
10286
- },
10287
- {
10288
- "kind": "method",
10289
- "name": "getLogicalOperators",
10290
- "return": {
10291
- "type": {
10292
- "text": "Array<any>"
10293
- }
10294
- }
10295
- },
10296
- {
10297
- "kind": "method",
10298
- "name": "leftValueChanged"
10299
- },
10300
- {
10301
- "kind": "method",
10302
- "name": "logicalOperatorChanged"
10151
+ "kind": "method",
10152
+ "name": "logicalOperatorChanged"
10303
10153
  },
10304
10154
  {
10305
10155
  "kind": "method",
@@ -10421,372 +10271,364 @@
10421
10271
  },
10422
10272
  {
10423
10273
  "kind": "javascript-module",
10424
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
10425
- "declarations": [
10426
- {
10427
- "kind": "variable",
10428
- "name": "ParameterBuilderStyles",
10429
- "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`"
10430
- }
10431
- ],
10432
- "exports": [
10433
- {
10434
- "kind": "js",
10435
- "name": "ParameterBuilderStyles",
10436
- "declaration": {
10437
- "name": "ParameterBuilderStyles",
10438
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
10439
- }
10440
- }
10441
- ]
10442
- },
10443
- {
10444
- "kind": "javascript-module",
10445
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
10274
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
10446
10275
  "declarations": [
10447
10276
  {
10448
10277
  "kind": "variable",
10449
- "name": "ParameterBuilderTemplate",
10450
- "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`"
10278
+ "name": "RuleConditionGroupTemplate",
10279
+ "default": "html<RuleConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, RuleConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <rule-condition-group\n :fields=${(x, c) => c.parent.fields}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <rule-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
10451
10280
  }
10452
10281
  ],
10453
10282
  "exports": [
10454
10283
  {
10455
10284
  "kind": "js",
10456
- "name": "ParameterBuilderTemplate",
10285
+ "name": "RuleConditionGroupTemplate",
10457
10286
  "declaration": {
10458
- "name": "ParameterBuilderTemplate",
10459
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
10287
+ "name": "RuleConditionGroupTemplate",
10288
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
10460
10289
  }
10461
10290
  }
10462
10291
  ]
10463
10292
  },
10464
10293
  {
10465
10294
  "kind": "javascript-module",
10466
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
10295
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
10467
10296
  "declarations": [
10468
10297
  {
10469
10298
  "kind": "class",
10470
- "description": "Parameter builder for notification templates.",
10471
- "name": "ParameterBuilder",
10299
+ "description": "Parenthesized group of conditions/nested groups for notification rule\ncriteria, joined to the previous sibling via AND/OR like a single\ncondition row - but bracketing its own children off from the rest of the\nlist, so e.g. \"(A && B) || C\" can be expressed without the AND silently\nspanning more than intended.",
10300
+ "name": "RuleConditionGroup",
10472
10301
  "members": [
10473
10302
  {
10474
10303
  "kind": "field",
10475
- "name": "parameter",
10476
- "type": {
10477
- "text": "ParameterBuilderEntity"
10478
- }
10479
- },
10480
- {
10481
- "kind": "field",
10482
- "name": "name",
10483
- "type": {
10484
- "text": "string"
10485
- }
10486
- },
10487
- {
10488
- "kind": "field",
10489
- "name": "label",
10490
- "type": {
10491
- "text": "string"
10492
- }
10493
- },
10494
- {
10495
- "kind": "field",
10496
- "name": "type",
10304
+ "name": "node",
10497
10305
  "type": {
10498
- "text": "string"
10306
+ "text": "ConditionGroupEntity"
10499
10307
  }
10500
10308
  },
10501
10309
  {
10502
10310
  "kind": "field",
10503
- "name": "sourceType",
10311
+ "name": "fields",
10504
10312
  "type": {
10505
- "text": "string"
10506
- }
10313
+ "text": "Field[]"
10314
+ },
10315
+ "default": "[]"
10507
10316
  },
10508
10317
  {
10509
10318
  "kind": "field",
10510
- "name": "sourceSelected",
10319
+ "name": "isFirst",
10511
10320
  "type": {
10512
- "text": "string"
10513
- }
10321
+ "text": "boolean"
10322
+ },
10323
+ "default": "false"
10514
10324
  },
10515
10325
  {
10516
10326
  "kind": "field",
10517
- "name": "sourceTyped",
10327
+ "name": "joinOperator",
10518
10328
  "type": {
10519
10329
  "text": "string"
10520
10330
  }
10521
10331
  },
10522
10332
  {
10523
10333
  "kind": "field",
10524
- "name": "sourceTextField",
10525
- "type": {
10526
- "text": "TextField"
10527
- }
10528
- },
10529
- {
10530
- "kind": "field",
10531
- "name": "sourceSelect",
10532
- "type": {
10533
- "text": "Select"
10534
- }
10535
- },
10536
- {
10537
- "kind": "field",
10538
- "name": "reqRepItems",
10334
+ "name": "groupChildren",
10539
10335
  "type": {
10540
- "text": "array"
10336
+ "text": "ConditionNode[]"
10541
10337
  },
10542
- "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
10543
- },
10544
- {
10545
- "kind": "method",
10546
- "name": "deleteParameter"
10547
- },
10548
- {
10549
- "kind": "method",
10550
- "name": "parameterChanged"
10551
- },
10552
- {
10553
- "kind": "method",
10554
- "name": "nameChanged"
10338
+ "default": "[]"
10555
10339
  },
10556
10340
  {
10557
10341
  "kind": "method",
10558
- "name": "labelChanged"
10342
+ "name": "nodeChanged"
10559
10343
  },
10560
10344
  {
10561
10345
  "kind": "method",
10562
- "name": "typeChanged"
10346
+ "name": "joinOperatorChanged"
10563
10347
  },
10564
10348
  {
10565
10349
  "kind": "method",
10566
- "name": "sourceTypeChanged"
10350
+ "name": "newCondition"
10567
10351
  },
10568
10352
  {
10569
10353
  "kind": "method",
10570
- "name": "sourceSelectedChanged"
10354
+ "name": "newGroup"
10571
10355
  },
10572
10356
  {
10573
10357
  "kind": "method",
10574
- "name": "sourceTypedChanged"
10358
+ "name": "editChild",
10359
+ "parameters": [
10360
+ {
10361
+ "name": "_editedChild",
10362
+ "type": {
10363
+ "text": "ConditionNode"
10364
+ }
10365
+ }
10366
+ ]
10575
10367
  },
10576
10368
  {
10577
10369
  "kind": "method",
10578
- "name": "genericChanged",
10579
- "privacy": "private",
10370
+ "name": "deleteChild",
10580
10371
  "parameters": [
10581
10372
  {
10582
- "name": "parameterAttribute"
10583
- },
10584
- {
10585
- "name": "value"
10373
+ "name": "deletedChild",
10374
+ "type": {
10375
+ "text": "ConditionNode"
10376
+ }
10586
10377
  }
10587
10378
  ]
10379
+ },
10380
+ {
10381
+ "kind": "method",
10382
+ "name": "deleteSelf"
10588
10383
  }
10589
10384
  ],
10590
10385
  "events": [
10591
10386
  {
10592
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
10387
+ "description": "Fired when this whole group should be removed",
10593
10388
  "name": "delete"
10594
10389
  },
10595
10390
  {
10596
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
10391
+ "description": "Fired when anything inside this group changes",
10597
10392
  "name": "edit"
10598
10393
  }
10599
10394
  ],
10600
- "attributes": [
10601
- {
10602
- "name": "parameter",
10603
- "type": {
10604
- "text": "ParameterBuilderEntity"
10605
- },
10606
- "fieldName": "parameter"
10607
- }
10608
- ],
10609
10395
  "superclass": {
10610
10396
  "name": "GenesisElement",
10611
10397
  "package": "@genesislcap/web-core"
10612
10398
  },
10613
- "tagName": "parameter-builder",
10399
+ "tagName": "rule-condition-group",
10614
10400
  "customElement": true
10615
10401
  }
10616
10402
  ],
10617
10403
  "exports": [
10618
10404
  {
10619
10405
  "kind": "js",
10620
- "name": "ParameterBuilder",
10406
+ "name": "RuleConditionGroup",
10621
10407
  "declaration": {
10622
- "name": "ParameterBuilder",
10623
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10408
+ "name": "RuleConditionGroup",
10409
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10624
10410
  }
10625
10411
  },
10626
10412
  {
10627
10413
  "kind": "custom-element-definition",
10628
- "name": "parameter-builder",
10414
+ "name": "rule-condition-group",
10629
10415
  "declaration": {
10630
- "name": "ParameterBuilder",
10631
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10416
+ "name": "RuleConditionGroup",
10417
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10632
10418
  }
10633
10419
  }
10634
10420
  ]
10635
10421
  },
10636
10422
  {
10637
10423
  "kind": "javascript-module",
10638
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
10424
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
10639
10425
  "declarations": [
10640
10426
  {
10641
10427
  "kind": "variable",
10642
- "name": "TemplateConditionGroupTemplate",
10643
- "default": "html<TemplateConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, TemplateConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <template-condition-group\n :fields=${(x, c) => c.parent.fields}\n :parameters=${(x, c) => c.parent.parameters}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></template-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <template-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :parameters=${(x, c) => c.parent.parameters}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></template-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
10428
+ "name": "ParameterBuilderStyles",
10429
+ "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`"
10644
10430
  }
10645
10431
  ],
10646
10432
  "exports": [
10647
10433
  {
10648
10434
  "kind": "js",
10649
- "name": "TemplateConditionGroupTemplate",
10435
+ "name": "ParameterBuilderStyles",
10650
10436
  "declaration": {
10651
- "name": "TemplateConditionGroupTemplate",
10652
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts"
10437
+ "name": "ParameterBuilderStyles",
10438
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
10653
10439
  }
10654
10440
  }
10655
10441
  ]
10656
10442
  },
10657
10443
  {
10658
10444
  "kind": "javascript-module",
10659
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts",
10445
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
10446
+ "declarations": [
10447
+ {
10448
+ "kind": "variable",
10449
+ "name": "ParameterBuilderTemplate",
10450
+ "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`"
10451
+ }
10452
+ ],
10453
+ "exports": [
10454
+ {
10455
+ "kind": "js",
10456
+ "name": "ParameterBuilderTemplate",
10457
+ "declaration": {
10458
+ "name": "ParameterBuilderTemplate",
10459
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
10460
+ }
10461
+ }
10462
+ ]
10463
+ },
10464
+ {
10465
+ "kind": "javascript-module",
10466
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
10660
10467
  "declarations": [
10661
10468
  {
10662
10469
  "kind": "class",
10663
- "description": "Parenthesized group of conditions/nested groups for notification template\ncriteria - see rule-condition-group for the rationale. Also forwards\n:parameters down to nested template-condition-builder rows so parameter\nbinding (USER_ENTRY) keeps working inside a group.",
10664
- "name": "TemplateConditionGroup",
10470
+ "description": "Parameter builder for notification templates.",
10471
+ "name": "ParameterBuilder",
10665
10472
  "members": [
10666
10473
  {
10667
10474
  "kind": "field",
10668
- "name": "node",
10475
+ "name": "parameter",
10669
10476
  "type": {
10670
- "text": "ConditionGroupEntity"
10477
+ "text": "ParameterBuilderEntity"
10671
10478
  }
10672
10479
  },
10673
10480
  {
10674
10481
  "kind": "field",
10675
- "name": "fields",
10482
+ "name": "name",
10676
10483
  "type": {
10677
- "text": "Field[]"
10678
- },
10679
- "default": "[]"
10484
+ "text": "string"
10485
+ }
10486
+ },
10487
+ {
10488
+ "kind": "field",
10489
+ "name": "label",
10490
+ "type": {
10491
+ "text": "string"
10492
+ }
10493
+ },
10494
+ {
10495
+ "kind": "field",
10496
+ "name": "type",
10497
+ "type": {
10498
+ "text": "string"
10499
+ }
10500
+ },
10501
+ {
10502
+ "kind": "field",
10503
+ "name": "sourceType",
10504
+ "type": {
10505
+ "text": "string"
10506
+ }
10507
+ },
10508
+ {
10509
+ "kind": "field",
10510
+ "name": "sourceSelected",
10511
+ "type": {
10512
+ "text": "string"
10513
+ }
10680
10514
  },
10681
10515
  {
10682
10516
  "kind": "field",
10683
- "name": "parameters",
10517
+ "name": "sourceTyped",
10684
10518
  "type": {
10685
- "text": "Array<ParameterBuilderEntity>"
10686
- },
10687
- "default": "[]"
10519
+ "text": "string"
10520
+ }
10688
10521
  },
10689
10522
  {
10690
10523
  "kind": "field",
10691
- "name": "isFirst",
10524
+ "name": "sourceTextField",
10692
10525
  "type": {
10693
- "text": "boolean"
10694
- },
10695
- "default": "false"
10526
+ "text": "TextField"
10527
+ }
10696
10528
  },
10697
10529
  {
10698
10530
  "kind": "field",
10699
- "name": "joinOperator",
10531
+ "name": "sourceSelect",
10700
10532
  "type": {
10701
- "text": "string"
10533
+ "text": "Select"
10702
10534
  }
10703
10535
  },
10704
10536
  {
10705
10537
  "kind": "field",
10706
- "name": "groupChildren",
10538
+ "name": "reqRepItems",
10707
10539
  "type": {
10708
- "text": "ConditionNode[]"
10540
+ "text": "array"
10709
10541
  },
10710
- "default": "[]"
10542
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
10711
10543
  },
10712
10544
  {
10713
10545
  "kind": "method",
10714
- "name": "nodeChanged"
10546
+ "name": "deleteParameter"
10715
10547
  },
10716
10548
  {
10717
10549
  "kind": "method",
10718
- "name": "joinOperatorChanged"
10550
+ "name": "parameterChanged"
10719
10551
  },
10720
10552
  {
10721
10553
  "kind": "method",
10722
- "name": "newCondition"
10554
+ "name": "nameChanged"
10723
10555
  },
10724
10556
  {
10725
10557
  "kind": "method",
10726
- "name": "newGroup"
10558
+ "name": "labelChanged"
10727
10559
  },
10728
10560
  {
10729
10561
  "kind": "method",
10730
- "name": "editChild",
10731
- "parameters": [
10732
- {
10733
- "name": "_editedChild",
10734
- "type": {
10735
- "text": "ConditionNode"
10736
- }
10737
- }
10738
- ]
10562
+ "name": "typeChanged"
10739
10563
  },
10740
10564
  {
10741
10565
  "kind": "method",
10742
- "name": "deleteChild",
10566
+ "name": "sourceTypeChanged"
10567
+ },
10568
+ {
10569
+ "kind": "method",
10570
+ "name": "sourceSelectedChanged"
10571
+ },
10572
+ {
10573
+ "kind": "method",
10574
+ "name": "sourceTypedChanged"
10575
+ },
10576
+ {
10577
+ "kind": "method",
10578
+ "name": "genericChanged",
10579
+ "privacy": "private",
10743
10580
  "parameters": [
10744
10581
  {
10745
- "name": "deletedChild",
10746
- "type": {
10747
- "text": "ConditionNode"
10748
- }
10582
+ "name": "parameterAttribute"
10583
+ },
10584
+ {
10585
+ "name": "value"
10749
10586
  }
10750
10587
  ]
10751
- },
10752
- {
10753
- "kind": "method",
10754
- "name": "deleteSelf"
10755
10588
  }
10756
10589
  ],
10757
10590
  "events": [
10758
10591
  {
10759
- "description": "Fired when this whole group should be removed",
10592
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
10760
10593
  "name": "delete"
10761
10594
  },
10762
10595
  {
10763
- "description": "Fired when anything inside this group changes",
10596
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
10764
10597
  "name": "edit"
10765
10598
  }
10766
10599
  ],
10600
+ "attributes": [
10601
+ {
10602
+ "name": "parameter",
10603
+ "type": {
10604
+ "text": "ParameterBuilderEntity"
10605
+ },
10606
+ "fieldName": "parameter"
10607
+ }
10608
+ ],
10767
10609
  "superclass": {
10768
10610
  "name": "GenesisElement",
10769
10611
  "package": "@genesislcap/web-core"
10770
10612
  },
10771
- "tagName": "template-condition-group",
10613
+ "tagName": "parameter-builder",
10772
10614
  "customElement": true
10773
10615
  }
10774
10616
  ],
10775
10617
  "exports": [
10776
10618
  {
10777
10619
  "kind": "js",
10778
- "name": "TemplateConditionGroup",
10620
+ "name": "ParameterBuilder",
10779
10621
  "declaration": {
10780
- "name": "TemplateConditionGroup",
10781
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
10622
+ "name": "ParameterBuilder",
10623
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10782
10624
  }
10783
10625
  },
10784
10626
  {
10785
10627
  "kind": "custom-element-definition",
10786
- "name": "template-condition-group",
10628
+ "name": "parameter-builder",
10787
10629
  "declaration": {
10788
- "name": "TemplateConditionGroup",
10789
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
10630
+ "name": "ParameterBuilder",
10631
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10790
10632
  }
10791
10633
  }
10792
10634
  ]
@@ -11074,6 +10916,164 @@
11074
10916
  }
11075
10917
  }
11076
10918
  ]
10919
+ },
10920
+ {
10921
+ "kind": "javascript-module",
10922
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
10923
+ "declarations": [
10924
+ {
10925
+ "kind": "variable",
10926
+ "name": "TemplateConditionGroupTemplate",
10927
+ "default": "html<TemplateConditionGroup>`\n ${when(\n (x) => !x.isFirst,\n html`\n <div class=\"join-toggle-row\">\n <div class=\"join-toggle\">\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'AND'])}\"\n @click=${(x) => (x.joinOperator = 'AND')}\n >\n AND\n </span>\n <span\n class=\"join-text${(x) => classNames(['active', x.joinOperator === 'OR'])}\"\n @click=${(x) => (x.joinOperator = 'OR')}\n >\n OR\n </span>\n </div>\n </div>\n `,\n )}\n <div class=\"condition-group-row\">\n <div class=\"condition-group-box\">\n ${repeat(\n (x) => x.groupChildren,\n html<ConditionNode, TemplateConditionGroup>`\n ${when(\n (x) => isGroup(x),\n html<ConditionNode>`\n <template-condition-group\n :fields=${(x, c) => c.parent.fields}\n :parameters=${(x, c) => c.parent.parameters}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></template-condition-group>\n `,\n )}\n ${when(\n (x) => !isGroup(x),\n html<ConditionNode>`\n <template-condition-builder\n :fields=${(x, c) => c.parent.fields}\n :parameters=${(x, c) => c.parent.parameters}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editChild(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteChild(eventDetail(c))}\n ></template-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n\n <div class=\"content-row\">\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newCondition()}>\n + Condition\n </rapid-button>\n <rapid-button appearance=\"lightweight\" @click=${(x) => x.newGroup()}>+ Group</rapid-button>\n <rapid-button appearance=\"icon\" class=\"delete-group\" @click=${(x) => x.deleteSelf()}>\n <rapid-icon variant=\"regular\" name=\"trash-alt\" size=\"lg\" part=\"icon\"></rapid-icon>\n </rapid-button>\n </div>\n </div>\n </div>\n`"
10928
+ }
10929
+ ],
10930
+ "exports": [
10931
+ {
10932
+ "kind": "js",
10933
+ "name": "TemplateConditionGroupTemplate",
10934
+ "declaration": {
10935
+ "name": "TemplateConditionGroupTemplate",
10936
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts"
10937
+ }
10938
+ }
10939
+ ]
10940
+ },
10941
+ {
10942
+ "kind": "javascript-module",
10943
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts",
10944
+ "declarations": [
10945
+ {
10946
+ "kind": "class",
10947
+ "description": "Parenthesized group of conditions/nested groups for notification template\ncriteria - see rule-condition-group for the rationale. Also forwards\n:parameters down to nested template-condition-builder rows so parameter\nbinding (USER_ENTRY) keeps working inside a group.",
10948
+ "name": "TemplateConditionGroup",
10949
+ "members": [
10950
+ {
10951
+ "kind": "field",
10952
+ "name": "node",
10953
+ "type": {
10954
+ "text": "ConditionGroupEntity"
10955
+ }
10956
+ },
10957
+ {
10958
+ "kind": "field",
10959
+ "name": "fields",
10960
+ "type": {
10961
+ "text": "Field[]"
10962
+ },
10963
+ "default": "[]"
10964
+ },
10965
+ {
10966
+ "kind": "field",
10967
+ "name": "parameters",
10968
+ "type": {
10969
+ "text": "Array<ParameterBuilderEntity>"
10970
+ },
10971
+ "default": "[]"
10972
+ },
10973
+ {
10974
+ "kind": "field",
10975
+ "name": "isFirst",
10976
+ "type": {
10977
+ "text": "boolean"
10978
+ },
10979
+ "default": "false"
10980
+ },
10981
+ {
10982
+ "kind": "field",
10983
+ "name": "joinOperator",
10984
+ "type": {
10985
+ "text": "string"
10986
+ }
10987
+ },
10988
+ {
10989
+ "kind": "field",
10990
+ "name": "groupChildren",
10991
+ "type": {
10992
+ "text": "ConditionNode[]"
10993
+ },
10994
+ "default": "[]"
10995
+ },
10996
+ {
10997
+ "kind": "method",
10998
+ "name": "nodeChanged"
10999
+ },
11000
+ {
11001
+ "kind": "method",
11002
+ "name": "joinOperatorChanged"
11003
+ },
11004
+ {
11005
+ "kind": "method",
11006
+ "name": "newCondition"
11007
+ },
11008
+ {
11009
+ "kind": "method",
11010
+ "name": "newGroup"
11011
+ },
11012
+ {
11013
+ "kind": "method",
11014
+ "name": "editChild",
11015
+ "parameters": [
11016
+ {
11017
+ "name": "_editedChild",
11018
+ "type": {
11019
+ "text": "ConditionNode"
11020
+ }
11021
+ }
11022
+ ]
11023
+ },
11024
+ {
11025
+ "kind": "method",
11026
+ "name": "deleteChild",
11027
+ "parameters": [
11028
+ {
11029
+ "name": "deletedChild",
11030
+ "type": {
11031
+ "text": "ConditionNode"
11032
+ }
11033
+ }
11034
+ ]
11035
+ },
11036
+ {
11037
+ "kind": "method",
11038
+ "name": "deleteSelf"
11039
+ }
11040
+ ],
11041
+ "events": [
11042
+ {
11043
+ "description": "Fired when this whole group should be removed",
11044
+ "name": "delete"
11045
+ },
11046
+ {
11047
+ "description": "Fired when anything inside this group changes",
11048
+ "name": "edit"
11049
+ }
11050
+ ],
11051
+ "superclass": {
11052
+ "name": "GenesisElement",
11053
+ "package": "@genesislcap/web-core"
11054
+ },
11055
+ "tagName": "template-condition-group",
11056
+ "customElement": true
11057
+ }
11058
+ ],
11059
+ "exports": [
11060
+ {
11061
+ "kind": "js",
11062
+ "name": "TemplateConditionGroup",
11063
+ "declaration": {
11064
+ "name": "TemplateConditionGroup",
11065
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
11066
+ }
11067
+ },
11068
+ {
11069
+ "kind": "custom-element-definition",
11070
+ "name": "template-condition-group",
11071
+ "declaration": {
11072
+ "name": "TemplateConditionGroup",
11073
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
11074
+ }
11075
+ }
11076
+ ]
11077
11077
  }
11078
11078
  ]
11079
11079
  }