@genesislcap/pbc-notify-ui 15.78.2 → 15.79.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.
@@ -5984,149 +5984,6 @@
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
- },
6130
5987
  {
6131
5988
  "kind": "javascript-module",
6132
5989
  "path": "src/components/foundation-inbox/components/foundation-inbox-flyout/foundation-inbox-flyout.styles.ts",
@@ -7527,124 +7384,267 @@
7527
7384
  },
7528
7385
  {
7529
7386
  "kind": "javascript-module",
7530
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts",
7387
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
7531
7388
  "declarations": [
7532
7389
  {
7533
7390
  "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`"
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`"
7536
7402
  }
7537
7403
  ],
7538
7404
  "exports": [
7539
7405
  {
7540
7406
  "kind": "js",
7541
- "name": "InboxSubscriptionStyles",
7407
+ "name": "noItemsClass",
7542
7408
  "declaration": {
7543
- "name": "InboxSubscriptionStyles",
7544
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.styles.ts"
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",
7416
+ "declaration": {
7417
+ "name": "FoundationInboxCounterStyles",
7418
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts"
7545
7419
  }
7546
7420
  }
7547
7421
  ]
7548
7422
  },
7549
7423
  {
7550
7424
  "kind": "javascript-module",
7551
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts",
7425
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts",
7552
7426
  "declarations": [
7553
7427
  {
7554
7428
  "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`"
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`"
7557
7431
  }
7558
7432
  ],
7559
7433
  "exports": [
7560
7434
  {
7561
7435
  "kind": "js",
7562
- "name": "InboxSubscriptionTemplate",
7436
+ "name": "FoundationInboxCounterTemplate",
7563
7437
  "declaration": {
7564
- "name": "InboxSubscriptionTemplate",
7565
- "module": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.template.ts"
7438
+ "name": "FoundationInboxCounterTemplate",
7439
+ "module": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.template.ts"
7566
7440
  }
7567
7441
  }
7568
7442
  ]
7569
7443
  },
7570
7444
  {
7571
7445
  "kind": "javascript-module",
7572
- "path": "src/components/foundation-inbox/components/inbox-subscription/inbox-subscription.ts",
7446
+ "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.ts",
7573
7447
  "declarations": [
7574
7448
  {
7575
7449
  "kind": "class",
7576
- "description": "Inbox subscription configuration UI.",
7577
- "name": "InboxSubscription",
7450
+ "description": "",
7451
+ "name": "FoundationInboxCounter",
7578
7452
  "members": [
7579
7453
  {
7580
7454
  "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",
7455
+ "name": "value",
7594
7456
  "type": {
7595
- "text": "Record<string, string>"
7457
+ "text": "number"
7596
7458
  },
7597
- "default": "{}",
7598
- "description": "Merged into subscribe payload (e.g. CHANNEL topic). Hidden from the form."
7459
+ "default": "0"
7599
7460
  },
7600
7461
  {
7601
7462
  "kind": "field",
7602
- "name": "parametersDetails",
7463
+ "name": "connect",
7603
7464
  "type": {
7604
- "text": "object"
7605
- },
7606
- "privacy": "private",
7607
- "default": "{}"
7465
+ "text": "Connect"
7466
+ }
7608
7467
  },
7609
7468
  {
7610
7469
  "kind": "field",
7611
- "name": "isSubmitting",
7470
+ "name": "inboxService",
7612
7471
  "type": {
7613
- "text": "boolean"
7614
- },
7615
- "privacy": "private",
7616
- "default": "false"
7472
+ "text": "FoundationInboxService"
7473
+ }
7617
7474
  },
7618
7475
  {
7619
7476
  "kind": "field",
7620
- "name": "parametersOperators",
7477
+ "name": "connectionSub",
7621
7478
  "type": {
7622
- "text": "object"
7479
+ "text": "Subscription"
7623
7480
  },
7624
- "default": "{}"
7481
+ "privacy": "private"
7625
7482
  },
7626
7483
  {
7627
- "kind": "field",
7628
- "name": "subscribeDisabled",
7629
- "type": {
7630
- "text": "boolean"
7484
+ "kind": "method",
7485
+ "name": "subscribeToAlerts",
7486
+ "privacy": "private",
7487
+ "return": {
7488
+ "type": {
7489
+ "text": "Promise<void>"
7490
+ }
7631
7491
  },
7632
- "default": "true"
7633
- },
7634
- {
7635
- "kind": "field",
7636
- "name": "ruleService",
7637
- "type": {
7638
- "text": "RuleService"
7639
- }
7492
+ "description": "Subscribes to alerts from the inbox service"
7640
7493
  },
7641
7494
  {
7642
7495
  "kind": "field",
7643
- "name": "visibleParameters",
7644
- "type": {
7645
- "text": "RuleParameterEntity[]"
7646
- },
7647
- "readonly": true
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": "{}"
7625
+ },
7626
+ {
7627
+ "kind": "field",
7628
+ "name": "subscribeDisabled",
7629
+ "type": {
7630
+ "text": "boolean"
7631
+ },
7632
+ "default": "true"
7633
+ },
7634
+ {
7635
+ "kind": "field",
7636
+ "name": "ruleService",
7637
+ "type": {
7638
+ "text": "RuleService"
7639
+ }
7640
+ },
7641
+ {
7642
+ "kind": "field",
7643
+ "name": "visibleParameters",
7644
+ "type": {
7645
+ "text": "RuleParameterEntity[]"
7646
+ },
7647
+ "readonly": true
7648
7648
  },
7649
7649
  {
7650
7650
  "kind": "method",
@@ -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-builder/rule-condition-builder.template.ts",
9990
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
9991
9991
  "declarations": [
9992
9992
  {
9993
9993
  "kind": "variable",
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`"
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`"
9996
9996
  }
9997
9997
  ],
9998
9998
  "exports": [
9999
9999
  {
10000
10000
  "kind": "js",
10001
- "name": "RuleConditionBuilderTemplate",
10001
+ "name": "RuleConditionGroupTemplate",
10002
10002
  "declaration": {
10003
- "name": "RuleConditionBuilderTemplate",
10004
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
10003
+ "name": "RuleConditionGroupTemplate",
10004
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.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-builder/rule-condition-builder.ts",
10011
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
10012
10012
  "declarations": [
10013
10013
  {
10014
10014
  "kind": "class",
10015
- "description": "Condition builder for notification rule criteria.",
10016
- "name": "RuleConditionBuilder",
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",
10017
10017
  "members": [
10018
10018
  {
10019
10019
  "kind": "field",
10020
- "name": "condition",
10020
+ "name": "node",
10021
10021
  "type": {
10022
- "text": "ConditionBuilderEntity"
10022
+ "text": "ConditionGroupEntity"
10023
10023
  }
10024
10024
  },
10025
10025
  {
@@ -10047,88 +10047,238 @@
10047
10047
  },
10048
10048
  {
10049
10049
  "kind": "field",
10050
- "name": "leftValue",
10051
- "type": {
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",
10050
+ "name": "groupChildren",
10098
10051
  "type": {
10099
- "text": "string[]"
10052
+ "text": "ConditionNode[]"
10100
10053
  },
10101
10054
  "default": "[]"
10102
10055
  },
10103
10056
  {
10104
10057
  "kind": "method",
10105
- "name": "deleteCondition"
10058
+ "name": "nodeChanged"
10106
10059
  },
10107
10060
  {
10108
10061
  "kind": "method",
10109
- "name": "conditionChanged"
10062
+ "name": "joinOperatorChanged"
10110
10063
  },
10111
10064
  {
10112
10065
  "kind": "method",
10113
- "name": "joinOperatorChanged"
10066
+ "name": "newCondition"
10114
10067
  },
10115
10068
  {
10116
10069
  "kind": "method",
10117
- "name": "fieldsChanged"
10070
+ "name": "newGroup"
10118
10071
  },
10119
10072
  {
10120
10073
  "kind": "method",
10121
- "name": "assignLeftValue",
10122
- "privacy": "private"
10074
+ "name": "editChild",
10075
+ "parameters": [
10076
+ {
10077
+ "name": "_editedChild",
10078
+ "type": {
10079
+ "text": "ConditionNode"
10080
+ }
10081
+ }
10082
+ ]
10123
10083
  },
10124
10084
  {
10125
10085
  "kind": "method",
10126
- "name": "assignRightValue"
10086
+ "name": "deleteChild",
10087
+ "parameters": [
10088
+ {
10089
+ "name": "deletedChild",
10090
+ "type": {
10091
+ "text": "ConditionNode"
10092
+ }
10093
+ }
10094
+ ]
10127
10095
  },
10128
10096
  {
10129
10097
  "kind": "method",
10130
- "name": "getRightCriteria",
10131
- "return": {
10098
+ "name": "deleteSelf"
10099
+ }
10100
+ ],
10101
+ "events": [
10102
+ {
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": {
10132
10282
  "type": {
10133
10283
  "text": "Array<any>"
10134
10284
  }
@@ -10271,364 +10421,372 @@
10271
10421
  },
10272
10422
  {
10273
10423
  "kind": "javascript-module",
10274
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
10424
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
10275
10425
  "declarations": [
10276
10426
  {
10277
10427
  "kind": "variable",
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`"
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`"
10280
10430
  }
10281
10431
  ],
10282
10432
  "exports": [
10283
10433
  {
10284
10434
  "kind": "js",
10285
- "name": "RuleConditionGroupTemplate",
10435
+ "name": "ParameterBuilderStyles",
10286
10436
  "declaration": {
10287
- "name": "RuleConditionGroupTemplate",
10288
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
10437
+ "name": "ParameterBuilderStyles",
10438
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
10289
10439
  }
10290
10440
  }
10291
10441
  ]
10292
10442
  },
10293
10443
  {
10294
10444
  "kind": "javascript-module",
10295
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-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",
10296
10467
  "declarations": [
10297
10468
  {
10298
10469
  "kind": "class",
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",
10470
+ "description": "Parameter builder for notification templates.",
10471
+ "name": "ParameterBuilder",
10301
10472
  "members": [
10302
10473
  {
10303
10474
  "kind": "field",
10304
- "name": "node",
10475
+ "name": "parameter",
10305
10476
  "type": {
10306
- "text": "ConditionGroupEntity"
10477
+ "text": "ParameterBuilderEntity"
10307
10478
  }
10308
10479
  },
10309
10480
  {
10310
10481
  "kind": "field",
10311
- "name": "fields",
10482
+ "name": "name",
10312
10483
  "type": {
10313
- "text": "Field[]"
10314
- },
10315
- "default": "[]"
10484
+ "text": "string"
10485
+ }
10316
10486
  },
10317
10487
  {
10318
10488
  "kind": "field",
10319
- "name": "isFirst",
10489
+ "name": "label",
10320
10490
  "type": {
10321
- "text": "boolean"
10322
- },
10323
- "default": "false"
10491
+ "text": "string"
10492
+ }
10324
10493
  },
10325
10494
  {
10326
10495
  "kind": "field",
10327
- "name": "joinOperator",
10496
+ "name": "type",
10328
10497
  "type": {
10329
10498
  "text": "string"
10330
10499
  }
10331
10500
  },
10332
10501
  {
10333
10502
  "kind": "field",
10334
- "name": "groupChildren",
10503
+ "name": "sourceType",
10335
10504
  "type": {
10336
- "text": "ConditionNode[]"
10505
+ "text": "string"
10506
+ }
10507
+ },
10508
+ {
10509
+ "kind": "field",
10510
+ "name": "sourceSelected",
10511
+ "type": {
10512
+ "text": "string"
10513
+ }
10514
+ },
10515
+ {
10516
+ "kind": "field",
10517
+ "name": "sourceTyped",
10518
+ "type": {
10519
+ "text": "string"
10520
+ }
10521
+ },
10522
+ {
10523
+ "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",
10539
+ "type": {
10540
+ "text": "array"
10337
10541
  },
10338
- "default": "[]"
10542
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
10339
10543
  },
10340
10544
  {
10341
10545
  "kind": "method",
10342
- "name": "nodeChanged"
10546
+ "name": "deleteParameter"
10343
10547
  },
10344
10548
  {
10345
10549
  "kind": "method",
10346
- "name": "joinOperatorChanged"
10550
+ "name": "parameterChanged"
10347
10551
  },
10348
10552
  {
10349
10553
  "kind": "method",
10350
- "name": "newCondition"
10554
+ "name": "nameChanged"
10351
10555
  },
10352
10556
  {
10353
10557
  "kind": "method",
10354
- "name": "newGroup"
10558
+ "name": "labelChanged"
10355
10559
  },
10356
10560
  {
10357
10561
  "kind": "method",
10358
- "name": "editChild",
10359
- "parameters": [
10360
- {
10361
- "name": "_editedChild",
10362
- "type": {
10363
- "text": "ConditionNode"
10364
- }
10365
- }
10366
- ]
10562
+ "name": "typeChanged"
10367
10563
  },
10368
10564
  {
10369
10565
  "kind": "method",
10370
- "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",
10371
10580
  "parameters": [
10372
10581
  {
10373
- "name": "deletedChild",
10374
- "type": {
10375
- "text": "ConditionNode"
10376
- }
10582
+ "name": "parameterAttribute"
10583
+ },
10584
+ {
10585
+ "name": "value"
10377
10586
  }
10378
10587
  ]
10379
- },
10380
- {
10381
- "kind": "method",
10382
- "name": "deleteSelf"
10383
10588
  }
10384
10589
  ],
10385
10590
  "events": [
10386
10591
  {
10387
- "description": "Fired when this whole group should be removed",
10592
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
10388
10593
  "name": "delete"
10389
10594
  },
10390
10595
  {
10391
- "description": "Fired when anything inside this group changes",
10596
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
10392
10597
  "name": "edit"
10393
10598
  }
10394
10599
  ],
10600
+ "attributes": [
10601
+ {
10602
+ "name": "parameter",
10603
+ "type": {
10604
+ "text": "ParameterBuilderEntity"
10605
+ },
10606
+ "fieldName": "parameter"
10607
+ }
10608
+ ],
10395
10609
  "superclass": {
10396
10610
  "name": "GenesisElement",
10397
10611
  "package": "@genesislcap/web-core"
10398
10612
  },
10399
- "tagName": "rule-condition-group",
10613
+ "tagName": "parameter-builder",
10400
10614
  "customElement": true
10401
10615
  }
10402
10616
  ],
10403
10617
  "exports": [
10404
10618
  {
10405
10619
  "kind": "js",
10406
- "name": "RuleConditionGroup",
10620
+ "name": "ParameterBuilder",
10407
10621
  "declaration": {
10408
- "name": "RuleConditionGroup",
10409
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10622
+ "name": "ParameterBuilder",
10623
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10410
10624
  }
10411
10625
  },
10412
10626
  {
10413
10627
  "kind": "custom-element-definition",
10414
- "name": "rule-condition-group",
10415
- "declaration": {
10416
- "name": "RuleConditionGroup",
10417
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10418
- }
10419
- }
10420
- ]
10421
- },
10422
- {
10423
- "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",
10628
+ "name": "parameter-builder",
10436
10629
  "declaration": {
10437
- "name": "ParameterBuilderStyles",
10438
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
10630
+ "name": "ParameterBuilder",
10631
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10439
10632
  }
10440
10633
  }
10441
10634
  ]
10442
10635
  },
10443
10636
  {
10444
10637
  "kind": "javascript-module",
10445
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
10638
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
10446
10639
  "declarations": [
10447
10640
  {
10448
10641
  "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`"
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`"
10451
10644
  }
10452
10645
  ],
10453
10646
  "exports": [
10454
10647
  {
10455
10648
  "kind": "js",
10456
- "name": "ParameterBuilderTemplate",
10649
+ "name": "TemplateConditionGroupTemplate",
10457
10650
  "declaration": {
10458
- "name": "ParameterBuilderTemplate",
10459
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
10651
+ "name": "TemplateConditionGroupTemplate",
10652
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts"
10460
10653
  }
10461
10654
  }
10462
10655
  ]
10463
10656
  },
10464
10657
  {
10465
10658
  "kind": "javascript-module",
10466
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
10659
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts",
10467
10660
  "declarations": [
10468
10661
  {
10469
10662
  "kind": "class",
10470
- "description": "Parameter builder for notification templates.",
10471
- "name": "ParameterBuilder",
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",
10472
10665
  "members": [
10473
10666
  {
10474
10667
  "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",
10497
- "type": {
10498
- "text": "string"
10499
- }
10500
- },
10501
- {
10502
- "kind": "field",
10503
- "name": "sourceType",
10668
+ "name": "node",
10504
10669
  "type": {
10505
- "text": "string"
10670
+ "text": "ConditionGroupEntity"
10506
10671
  }
10507
10672
  },
10508
10673
  {
10509
10674
  "kind": "field",
10510
- "name": "sourceSelected",
10675
+ "name": "fields",
10511
10676
  "type": {
10512
- "text": "string"
10513
- }
10677
+ "text": "Field[]"
10678
+ },
10679
+ "default": "[]"
10514
10680
  },
10515
10681
  {
10516
10682
  "kind": "field",
10517
- "name": "sourceTyped",
10683
+ "name": "parameters",
10518
10684
  "type": {
10519
- "text": "string"
10520
- }
10685
+ "text": "Array<ParameterBuilderEntity>"
10686
+ },
10687
+ "default": "[]"
10521
10688
  },
10522
10689
  {
10523
10690
  "kind": "field",
10524
- "name": "sourceTextField",
10691
+ "name": "isFirst",
10525
10692
  "type": {
10526
- "text": "TextField"
10527
- }
10693
+ "text": "boolean"
10694
+ },
10695
+ "default": "false"
10528
10696
  },
10529
10697
  {
10530
10698
  "kind": "field",
10531
- "name": "sourceSelect",
10699
+ "name": "joinOperator",
10532
10700
  "type": {
10533
- "text": "Select"
10701
+ "text": "string"
10534
10702
  }
10535
10703
  },
10536
10704
  {
10537
10705
  "kind": "field",
10538
- "name": "reqRepItems",
10706
+ "name": "groupChildren",
10539
10707
  "type": {
10540
- "text": "array"
10708
+ "text": "ConditionNode[]"
10541
10709
  },
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"
10710
+ "default": "[]"
10555
10711
  },
10556
10712
  {
10557
10713
  "kind": "method",
10558
- "name": "labelChanged"
10714
+ "name": "nodeChanged"
10559
10715
  },
10560
10716
  {
10561
10717
  "kind": "method",
10562
- "name": "typeChanged"
10718
+ "name": "joinOperatorChanged"
10563
10719
  },
10564
10720
  {
10565
10721
  "kind": "method",
10566
- "name": "sourceTypeChanged"
10722
+ "name": "newCondition"
10567
10723
  },
10568
10724
  {
10569
10725
  "kind": "method",
10570
- "name": "sourceSelectedChanged"
10726
+ "name": "newGroup"
10571
10727
  },
10572
10728
  {
10573
10729
  "kind": "method",
10574
- "name": "sourceTypedChanged"
10730
+ "name": "editChild",
10731
+ "parameters": [
10732
+ {
10733
+ "name": "_editedChild",
10734
+ "type": {
10735
+ "text": "ConditionNode"
10736
+ }
10737
+ }
10738
+ ]
10575
10739
  },
10576
10740
  {
10577
10741
  "kind": "method",
10578
- "name": "genericChanged",
10579
- "privacy": "private",
10742
+ "name": "deleteChild",
10580
10743
  "parameters": [
10581
10744
  {
10582
- "name": "parameterAttribute"
10583
- },
10584
- {
10585
- "name": "value"
10745
+ "name": "deletedChild",
10746
+ "type": {
10747
+ "text": "ConditionNode"
10748
+ }
10586
10749
  }
10587
10750
  ]
10751
+ },
10752
+ {
10753
+ "kind": "method",
10754
+ "name": "deleteSelf"
10588
10755
  }
10589
10756
  ],
10590
10757
  "events": [
10591
10758
  {
10592
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
10759
+ "description": "Fired when this whole group should be removed",
10593
10760
  "name": "delete"
10594
10761
  },
10595
10762
  {
10596
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
10763
+ "description": "Fired when anything inside this group changes",
10597
10764
  "name": "edit"
10598
10765
  }
10599
10766
  ],
10600
- "attributes": [
10601
- {
10602
- "name": "parameter",
10603
- "type": {
10604
- "text": "ParameterBuilderEntity"
10605
- },
10606
- "fieldName": "parameter"
10607
- }
10608
- ],
10609
10767
  "superclass": {
10610
10768
  "name": "GenesisElement",
10611
10769
  "package": "@genesislcap/web-core"
10612
10770
  },
10613
- "tagName": "parameter-builder",
10771
+ "tagName": "template-condition-group",
10614
10772
  "customElement": true
10615
10773
  }
10616
10774
  ],
10617
10775
  "exports": [
10618
10776
  {
10619
10777
  "kind": "js",
10620
- "name": "ParameterBuilder",
10778
+ "name": "TemplateConditionGroup",
10621
10779
  "declaration": {
10622
- "name": "ParameterBuilder",
10623
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10780
+ "name": "TemplateConditionGroup",
10781
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
10624
10782
  }
10625
10783
  },
10626
10784
  {
10627
10785
  "kind": "custom-element-definition",
10628
- "name": "parameter-builder",
10786
+ "name": "template-condition-group",
10629
10787
  "declaration": {
10630
- "name": "ParameterBuilder",
10631
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
10788
+ "name": "TemplateConditionGroup",
10789
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
10632
10790
  }
10633
10791
  }
10634
10792
  ]
@@ -10916,164 +11074,6 @@
10916
11074
  }
10917
11075
  }
10918
11076
  ]
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
  }