@genesislcap/pbc-notify-ui 15.72.0 → 15.73.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.
@@ -505,27 +505,6 @@
505
505
  }
506
506
  ]
507
507
  },
508
- {
509
- "kind": "javascript-module",
510
- "path": "src/styles/scrollbar.styles.ts",
511
- "declarations": [
512
- {
513
- "kind": "variable",
514
- "name": "scrollbarStyles",
515
- "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
516
- }
517
- ],
518
- "exports": [
519
- {
520
- "kind": "js",
521
- "name": "scrollbarStyles",
522
- "declaration": {
523
- "name": "scrollbarStyles",
524
- "module": "src/styles/scrollbar.styles.ts"
525
- }
526
- }
527
- ]
528
- },
529
508
  {
530
509
  "kind": "javascript-module",
531
510
  "path": "src/utils/eventDetail.ts",
@@ -847,6 +826,27 @@
847
826
  }
848
827
  ]
849
828
  },
829
+ {
830
+ "kind": "javascript-module",
831
+ "path": "src/styles/scrollbar.styles.ts",
832
+ "declarations": [
833
+ {
834
+ "kind": "variable",
835
+ "name": "scrollbarStyles",
836
+ "default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
837
+ }
838
+ ],
839
+ "exports": [
840
+ {
841
+ "kind": "js",
842
+ "name": "scrollbarStyles",
843
+ "declaration": {
844
+ "name": "scrollbarStyles",
845
+ "module": "src/styles/scrollbar.styles.ts"
846
+ }
847
+ }
848
+ ]
849
+ },
850
850
  {
851
851
  "kind": "javascript-module",
852
852
  "path": "src/components/foundation-inbox/inbox.styles.ts",
@@ -5295,6 +5295,95 @@
5295
5295
  }
5296
5296
  ]
5297
5297
  },
5298
+ {
5299
+ "kind": "javascript-module",
5300
+ "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
5301
+ "declarations": [
5302
+ {
5303
+ "kind": "variable",
5304
+ "name": "ConditionBuilderStyles",
5305
+ "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
5306
+ },
5307
+ {
5308
+ "kind": "variable",
5309
+ "name": "ConditionGroupStyles",
5310
+ "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
5311
+ }
5312
+ ],
5313
+ "exports": [
5314
+ {
5315
+ "kind": "js",
5316
+ "name": "ConditionBuilderStyles",
5317
+ "declaration": {
5318
+ "name": "ConditionBuilderStyles",
5319
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
5320
+ }
5321
+ },
5322
+ {
5323
+ "kind": "js",
5324
+ "name": "ConditionGroupStyles",
5325
+ "declaration": {
5326
+ "name": "ConditionGroupStyles",
5327
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
5328
+ }
5329
+ }
5330
+ ]
5331
+ },
5332
+ {
5333
+ "kind": "javascript-module",
5334
+ "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
5335
+ "declarations": [
5336
+ {
5337
+ "kind": "variable",
5338
+ "name": "DynamicRuleManagementStyles",
5339
+ "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
5340
+ },
5341
+ {
5342
+ "kind": "variable",
5343
+ "name": "DynamicRuleDialogStyles",
5344
+ "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .topic-lock-hint {\n color: var(--neutral-foreground-hint, var(--neutral-foreground-rest));\n font-size: var(--type-ramp-minus-1-font-size);\n line-height: var(--type-ramp-minus-1-line-height);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
5345
+ }
5346
+ ],
5347
+ "exports": [
5348
+ {
5349
+ "kind": "js",
5350
+ "name": "DynamicRuleManagementStyles",
5351
+ "declaration": {
5352
+ "name": "DynamicRuleManagementStyles",
5353
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
5354
+ }
5355
+ },
5356
+ {
5357
+ "kind": "js",
5358
+ "name": "DynamicRuleDialogStyles",
5359
+ "declaration": {
5360
+ "name": "DynamicRuleDialogStyles",
5361
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
5362
+ }
5363
+ }
5364
+ ]
5365
+ },
5366
+ {
5367
+ "kind": "javascript-module",
5368
+ "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
5369
+ "declarations": [
5370
+ {
5371
+ "kind": "variable",
5372
+ "name": "managementGridStyles",
5373
+ "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
5374
+ }
5375
+ ],
5376
+ "exports": [
5377
+ {
5378
+ "kind": "js",
5379
+ "name": "managementGridStyles",
5380
+ "declaration": {
5381
+ "name": "managementGridStyles",
5382
+ "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
5383
+ }
5384
+ }
5385
+ ]
5386
+ },
5298
5387
  {
5299
5388
  "kind": "javascript-module",
5300
5389
  "path": "src/components/foundation-notification-dashboard/types/expression-type.ts",
@@ -5895,95 +5984,6 @@
5895
5984
  }
5896
5985
  ]
5897
5986
  },
5898
- {
5899
- "kind": "javascript-module",
5900
- "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
5901
- "declarations": [
5902
- {
5903
- "kind": "variable",
5904
- "name": "ConditionBuilderStyles",
5905
- "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
5906
- },
5907
- {
5908
- "kind": "variable",
5909
- "name": "ConditionGroupStyles",
5910
- "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
5911
- }
5912
- ],
5913
- "exports": [
5914
- {
5915
- "kind": "js",
5916
- "name": "ConditionBuilderStyles",
5917
- "declaration": {
5918
- "name": "ConditionBuilderStyles",
5919
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
5920
- }
5921
- },
5922
- {
5923
- "kind": "js",
5924
- "name": "ConditionGroupStyles",
5925
- "declaration": {
5926
- "name": "ConditionGroupStyles",
5927
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
5928
- }
5929
- }
5930
- ]
5931
- },
5932
- {
5933
- "kind": "javascript-module",
5934
- "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
5935
- "declarations": [
5936
- {
5937
- "kind": "variable",
5938
- "name": "DynamicRuleManagementStyles",
5939
- "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
5940
- },
5941
- {
5942
- "kind": "variable",
5943
- "name": "DynamicRuleDialogStyles",
5944
- "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .topic-lock-hint {\n color: var(--neutral-foreground-hint, var(--neutral-foreground-rest));\n font-size: var(--type-ramp-minus-1-font-size);\n line-height: var(--type-ramp-minus-1-line-height);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
5945
- }
5946
- ],
5947
- "exports": [
5948
- {
5949
- "kind": "js",
5950
- "name": "DynamicRuleManagementStyles",
5951
- "declaration": {
5952
- "name": "DynamicRuleManagementStyles",
5953
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
5954
- }
5955
- },
5956
- {
5957
- "kind": "js",
5958
- "name": "DynamicRuleDialogStyles",
5959
- "declaration": {
5960
- "name": "DynamicRuleDialogStyles",
5961
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
5962
- }
5963
- }
5964
- ]
5965
- },
5966
- {
5967
- "kind": "javascript-module",
5968
- "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
5969
- "declarations": [
5970
- {
5971
- "kind": "variable",
5972
- "name": "managementGridStyles",
5973
- "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
5974
- }
5975
- ],
5976
- "exports": [
5977
- {
5978
- "kind": "js",
5979
- "name": "managementGridStyles",
5980
- "declaration": {
5981
- "name": "managementGridStyles",
5982
- "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
5983
- }
5984
- }
5985
- ]
5986
- },
5987
5987
  {
5988
5988
  "kind": "javascript-module",
5989
5989
  "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
@@ -8225,37 +8225,247 @@
8225
8225
  },
8226
8226
  {
8227
8227
  "kind": "javascript-module",
8228
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts",
8228
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts",
8229
8229
  "declarations": [
8230
8230
  {
8231
- "kind": "variable",
8232
- "name": "RuleDialogTemplate",
8233
- "default": "html<RuleDialog>`\n <rapid-modal ${ref('dialog')} class=\"dialog\" :onCloseCallback=${(x) => () => x.close()}>\n <div slot=\"top\" class=\"dialog-top\">${(x) => x.ruleDialogTitle}</div>\n\n <div class=\"dialog-content\">\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field\n :value=${sync((x) => x.name)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autofocus\n autocomplete=\"off\"\n required\n >\n Name\n </rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field\n :value=${sync((x) => x.description)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n required\n >\n Description\n </rapid-text-field>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <label>Resource</label>\n <rapid-select\n :value=${sync((x) => x.resource)}\n title=${(x) => x.resource}\n position=\"below\"\n >\n ${repeat(\n (x) => x.resources,\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Topic</label>\n <rapid-combobox\n autocomplete=\"both\"\n :value=${sync((x) => x.selectedRouteId)}\n title=${(x) => x.topic}\n @change=${(x, c) => x.onTopicRouteChange((c.event.target as HTMLInputElement).value)}\n >\n ${repeat(\n (x) => x.routeTopicOptions,\n html<NotifyRouteTopic, RuleDialog>`\n <rapid-option value=${(x) => x.notifyRouteId} title=${(x) => x.topicMatch}>\n ${(x) => routeTopicLabel(x)}\n </rapid-option>\n `,\n )}\n </rapid-combobox>\n </div>\n\n <div class=\"control\">\n <label>Severity</label>\n <rapid-select :value=${sync((x) => x.severity)}>\n <options-datasource\n value-field=\"value\"\n label-field=\"value\"\n option-element=\"rapid-option\"\n :data=${(_) => Object.values(Severity).map((value) => ({ value }))}\n ></options-datasource>\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Update Type</label>\n <rapid-multiselect\n :selectedOptions=${(x) => x.updateType}\n @selectionChange=${(x, c) => {\n x.updateType = (c.event as CustomEvent).detail;\n }}\n search=\"false\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${() => Object.values(UpdateType).map((value) => ({ value, label: value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field\n required\n :value=${sync((x) => x.header)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n >\n Header\n </rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field\n required\n :value=${sync((x) => x.message)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n >\n Message\n </rapid-text-field>\n </div>\n </div>\n\n ${alertSoundAttachmentTemplate}\n\n <div class=\"control\">\n <label>Condition(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.conditions,\n html<ConditionNode, RuleDialog>`\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.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(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.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n </div>\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()}>\n + Group\n </rapid-button>\n </div>\n </div>\n <rapid-text-area\n class=\"expression-preview\"\n readonly\n :value=${(x) => x.rawExpressionPreview}\n >\n Compiled expression\n </rapid-text-area>\n </div>\n </div>\n\n <div slot=\"bottom\" class=\"dialog-bottom\">\n <rapid-button\n appearance=\"primary\"\n @click=${(x) => x.submit()}\n ?disabled=${(x) => x.submitDisabled}\n >\n Submit\n </rapid-button>\n </div>\n </rapid-modal>\n`"
8231
+ "kind": "class",
8232
+ "description": "",
8233
+ "name": "EmailDistributionRouteManagement",
8234
+ "superclass": {
8235
+ "name": "GenesisElement",
8236
+ "package": "@genesislcap/web-core"
8237
+ },
8238
+ "tagName": "email-distribution-route-management",
8239
+ "customElement": true
8234
8240
  }
8235
8241
  ],
8236
8242
  "exports": [
8237
8243
  {
8238
8244
  "kind": "js",
8239
- "name": "RuleDialogTemplate",
8245
+ "name": "EmailDistributionRouteManagement",
8240
8246
  "declaration": {
8241
- "name": "RuleDialogTemplate",
8242
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts"
8247
+ "name": "EmailDistributionRouteManagement",
8248
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts"
8249
+ }
8250
+ },
8251
+ {
8252
+ "kind": "custom-element-definition",
8253
+ "name": "email-distribution-route-management",
8254
+ "declaration": {
8255
+ "name": "EmailDistributionRouteManagement",
8256
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts"
8243
8257
  }
8244
8258
  }
8245
8259
  ]
8246
8260
  },
8247
8261
  {
8248
8262
  "kind": "javascript-module",
8249
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts",
8263
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts",
8250
8264
  "declarations": [
8251
8265
  {
8252
8266
  "kind": "class",
8253
- "description": "Dialog for creating or editing notification rules.",
8254
- "name": "RuleDialog",
8255
- "members": [
8256
- {
8257
- "kind": "field",
8258
- "name": "ruleService",
8267
+ "description": "",
8268
+ "name": "EmailUserRouteManagement",
8269
+ "superclass": {
8270
+ "name": "GenesisElement",
8271
+ "package": "@genesislcap/web-core"
8272
+ },
8273
+ "tagName": "email-user-route-management",
8274
+ "customElement": true
8275
+ }
8276
+ ],
8277
+ "exports": [
8278
+ {
8279
+ "kind": "js",
8280
+ "name": "EmailUserRouteManagement",
8281
+ "declaration": {
8282
+ "name": "EmailUserRouteManagement",
8283
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts"
8284
+ }
8285
+ },
8286
+ {
8287
+ "kind": "custom-element-definition",
8288
+ "name": "email-user-route-management",
8289
+ "declaration": {
8290
+ "name": "EmailUserRouteManagement",
8291
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts"
8292
+ }
8293
+ }
8294
+ ]
8295
+ },
8296
+ {
8297
+ "kind": "javascript-module",
8298
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts",
8299
+ "declarations": [
8300
+ {
8301
+ "kind": "class",
8302
+ "description": "",
8303
+ "name": "LogRouteManagement",
8304
+ "superclass": {
8305
+ "name": "GenesisElement",
8306
+ "package": "@genesislcap/web-core"
8307
+ },
8308
+ "tagName": "log-route-management",
8309
+ "customElement": true
8310
+ }
8311
+ ],
8312
+ "exports": [
8313
+ {
8314
+ "kind": "js",
8315
+ "name": "LogRouteManagement",
8316
+ "declaration": {
8317
+ "name": "LogRouteManagement",
8318
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts"
8319
+ }
8320
+ },
8321
+ {
8322
+ "kind": "custom-element-definition",
8323
+ "name": "log-route-management",
8324
+ "declaration": {
8325
+ "name": "LogRouteManagement",
8326
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts"
8327
+ }
8328
+ }
8329
+ ]
8330
+ },
8331
+ {
8332
+ "kind": "javascript-module",
8333
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts",
8334
+ "declarations": [
8335
+ {
8336
+ "kind": "class",
8337
+ "description": "",
8338
+ "name": "MSTeamsRouteManagement",
8339
+ "superclass": {
8340
+ "name": "GenesisElement",
8341
+ "package": "@genesislcap/web-core"
8342
+ },
8343
+ "tagName": "ms-teams-route-management",
8344
+ "customElement": true
8345
+ }
8346
+ ],
8347
+ "exports": [
8348
+ {
8349
+ "kind": "js",
8350
+ "name": "MSTeamsRouteManagement",
8351
+ "declaration": {
8352
+ "name": "MSTeamsRouteManagement",
8353
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts"
8354
+ }
8355
+ },
8356
+ {
8357
+ "kind": "custom-element-definition",
8358
+ "name": "ms-teams-route-management",
8359
+ "declaration": {
8360
+ "name": "MSTeamsRouteManagement",
8361
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts"
8362
+ }
8363
+ }
8364
+ ]
8365
+ },
8366
+ {
8367
+ "kind": "javascript-module",
8368
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts",
8369
+ "declarations": [
8370
+ {
8371
+ "kind": "class",
8372
+ "description": "",
8373
+ "name": "ScreenRouteManagement",
8374
+ "superclass": {
8375
+ "name": "GenesisElement",
8376
+ "package": "@genesislcap/web-core"
8377
+ },
8378
+ "tagName": "screen-route-management",
8379
+ "customElement": true
8380
+ }
8381
+ ],
8382
+ "exports": [
8383
+ {
8384
+ "kind": "js",
8385
+ "name": "ScreenRouteManagement",
8386
+ "declaration": {
8387
+ "name": "ScreenRouteManagement",
8388
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts"
8389
+ }
8390
+ },
8391
+ {
8392
+ "kind": "custom-element-definition",
8393
+ "name": "screen-route-management",
8394
+ "declaration": {
8395
+ "name": "ScreenRouteManagement",
8396
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts"
8397
+ }
8398
+ }
8399
+ ]
8400
+ },
8401
+ {
8402
+ "kind": "javascript-module",
8403
+ "path": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts",
8404
+ "declarations": [
8405
+ {
8406
+ "kind": "class",
8407
+ "description": "",
8408
+ "name": "SlackRouteManagement",
8409
+ "superclass": {
8410
+ "name": "GenesisElement",
8411
+ "package": "@genesislcap/web-core"
8412
+ },
8413
+ "tagName": "slack-route-management",
8414
+ "customElement": true
8415
+ }
8416
+ ],
8417
+ "exports": [
8418
+ {
8419
+ "kind": "js",
8420
+ "name": "SlackRouteManagement",
8421
+ "declaration": {
8422
+ "name": "SlackRouteManagement",
8423
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts"
8424
+ }
8425
+ },
8426
+ {
8427
+ "kind": "custom-element-definition",
8428
+ "name": "slack-route-management",
8429
+ "declaration": {
8430
+ "name": "SlackRouteManagement",
8431
+ "module": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts"
8432
+ }
8433
+ }
8434
+ ]
8435
+ },
8436
+ {
8437
+ "kind": "javascript-module",
8438
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts",
8439
+ "declarations": [
8440
+ {
8441
+ "kind": "variable",
8442
+ "name": "RuleDialogTemplate",
8443
+ "default": "html<RuleDialog>`\n <rapid-modal ${ref('dialog')} class=\"dialog\" :onCloseCallback=${(x) => () => x.close()}>\n <div slot=\"top\" class=\"dialog-top\">${(x) => x.ruleDialogTitle}</div>\n\n <div class=\"dialog-content\">\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field\n :value=${sync((x) => x.name)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autofocus\n autocomplete=\"off\"\n required\n >\n Name\n </rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field\n :value=${sync((x) => x.description)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n required\n >\n Description\n </rapid-text-field>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <label>Resource</label>\n <rapid-select\n :value=${sync((x) => x.resource)}\n title=${(x) => x.resource}\n position=\"below\"\n >\n ${repeat(\n (x) => x.resources,\n html`\n <rapid-option value=${(x) => x} title=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Topic</label>\n <rapid-combobox\n autocomplete=\"both\"\n :value=${sync((x) => x.selectedRouteId)}\n title=${(x) => x.topic}\n @change=${(x, c) => x.onTopicRouteChange((c.event.target as HTMLInputElement).value)}\n >\n ${repeat(\n (x) => x.routeTopicOptions,\n html<NotifyRouteTopic, RuleDialog>`\n <rapid-option value=${(x) => x.notifyRouteId} title=${(x) => x.topicMatch}>\n ${(x) => routeTopicLabel(x)}\n </rapid-option>\n `,\n )}\n </rapid-combobox>\n </div>\n\n <div class=\"control\">\n <label>Severity</label>\n <rapid-select :value=${sync((x) => x.severity)}>\n <options-datasource\n value-field=\"value\"\n label-field=\"value\"\n option-element=\"rapid-option\"\n :data=${(_) => Object.values(Severity).map((value) => ({ value }))}\n ></options-datasource>\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Update Type</label>\n <rapid-multiselect\n :selectedOptions=${(x) => x.updateType}\n @selectionChange=${(x, c) => {\n x.updateType = (c.event as CustomEvent).detail;\n }}\n search=\"false\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${() => Object.values(UpdateType).map((value) => ({ value, label: value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field\n required\n :value=${sync((x) => x.header)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n >\n Header\n </rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field\n required\n :value=${sync((x) => x.message)}\n @change=\"${(x) => x.validateRequiredFields()}\"\n autocomplete=\"off\"\n >\n Message\n </rapid-text-field>\n </div>\n </div>\n\n ${alertSoundAttachmentTemplate}\n\n <div class=\"control\">\n <label>Condition(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.conditions,\n html<ConditionNode, RuleDialog>`\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.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(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.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(eventDetail(c))}\n ></rule-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n </div>\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()}>\n + Group\n </rapid-button>\n </div>\n </div>\n <rapid-text-area\n class=\"expression-preview\"\n readonly\n :value=${(x) => x.rawExpressionPreview}\n >\n Compiled expression\n </rapid-text-area>\n </div>\n </div>\n\n <div slot=\"bottom\" class=\"dialog-bottom\">\n <rapid-button\n appearance=\"primary\"\n @click=${(x) => x.submit()}\n ?disabled=${(x) => x.submitDisabled}\n >\n Submit\n </rapid-button>\n </div>\n </rapid-modal>\n`"
8444
+ }
8445
+ ],
8446
+ "exports": [
8447
+ {
8448
+ "kind": "js",
8449
+ "name": "RuleDialogTemplate",
8450
+ "declaration": {
8451
+ "name": "RuleDialogTemplate",
8452
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.template.ts"
8453
+ }
8454
+ }
8455
+ ]
8456
+ },
8457
+ {
8458
+ "kind": "javascript-module",
8459
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts",
8460
+ "declarations": [
8461
+ {
8462
+ "kind": "class",
8463
+ "description": "Dialog for creating or editing notification rules.",
8464
+ "name": "RuleDialog",
8465
+ "members": [
8466
+ {
8467
+ "kind": "field",
8468
+ "name": "ruleService",
8259
8469
  "type": {
8260
8470
  "text": "RuleService"
8261
8471
  },
@@ -8887,238 +9097,28 @@
8887
9097
  },
8888
9098
  {
8889
9099
  "kind": "javascript-module",
8890
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts",
9100
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts",
8891
9101
  "declarations": [
8892
9102
  {
8893
- "kind": "class",
8894
- "description": "",
8895
- "name": "EmailDistributionRouteManagement",
8896
- "superclass": {
8897
- "name": "GenesisElement",
8898
- "package": "@genesislcap/web-core"
8899
- },
8900
- "tagName": "email-distribution-route-management",
8901
- "customElement": true
9103
+ "kind": "variable",
9104
+ "name": "TemplateDialogTemplate",
9105
+ "default": "html<TemplateDialog>`\n <rapid-modal ${ref('dialog')} class=\"dialog\" :onCloseCallback=${(x) => () => x.close()}>\n <div slot=\"top\" class=\"dialog-top\">${(x) => x.templateDialogTitle}</div>\n\n <div class=\"dialog-content\">\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.name)} autofocus>Name</rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.description)}>Description</rapid-text-field>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <label>Resource</label>\n <rapid-select :value=${sync((x) => x.resource)} position=\"below\">\n ${repeat(\n (x) => x.resources,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Severity</label>\n <rapid-select :value=${sync((x) => x.severity)}>\n <options-datasource\n value-field=\"value\"\n label-field=\"value\"\n option-element=\"rapid-option\"\n :data=${(_) => Object.values(Severity).map((value) => ({ value }))}\n ></options-datasource>\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Update Type</label>\n <rapid-multiselect\n :selectedOptions=${(x) => x.updateType}\n @selectionChange=${(x, c) => {\n x.updateType = (c.event as CustomEvent).detail;\n }}\n search=\"false\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${() => Object.values(UpdateType).map((value) => ({ value, label: value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.header)}>Header</rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.message)}>Message</rapid-text-field>\n </div>\n </div>\n\n <div class=\"control\">\n <label>Topic(s)</label>\n ${when(\n (x) => x.lockBroadcastTopics,\n html`\n <span class=\"topic-lock-hint\">\n Broadcast topics cannot be used after this template was saved with multiple subscriber\n routes. Delete it and create a new template instead.\n </span>\n `,\n )}\n ${when(\n (x) => x.topicOptions.length > 0,\n html<TemplateDialog>`\n <rapid-multiselect\n ${ref('topicsSelect')}\n class=\"channel-topics\"\n name=\"topics\"\n :selectedOptions=${(x) => x.selectedRouteIds}\n :options=${(x) => x.topicOptions}\n @selectionChange=${(x, c) => x.onSelectedTopicsChange(c.event)}\n search=\"true\"\n all=\"false\"\n ></rapid-multiselect>\n `,\n )}\n </div>\n\n <div class=\"control\">\n <label>Parameter(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.userParameters,\n html`\n <parameter-builder\n :parameter=${(x) => x}\n @edit=${(x, c) => c.parent.editParameter(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteParameter(eventDetail(c))}\n ></parameter-builder>\n `,\n )}\n </div>\n\n <div class=\"content-row\">\n <rapid-button @click=${(x) => x.newParameter()}>+ Parameter</rapid-button>\n </div>\n </div>\n </div>\n\n ${alertSoundAttachmentTemplate}\n\n <div class=\"control\">\n <label>Condition(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.conditions,\n html<ConditionNode, TemplateDialog>`\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.userParameters}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(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.userParameters}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(eventDetail(c))}\n ></template-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n </div>\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()}>\n + Group\n </rapid-button>\n </div>\n </div>\n <rapid-text-area\n class=\"expression-preview\"\n readonly\n :value=${(x) => x.rawExpressionPreview}\n >\n Compiled expression\n </rapid-text-area>\n </div>\n </div>\n\n <div slot=\"bottom\" class=\"dialog-bottom\">\n <rapid-button\n appearance=\"primary\"\n @click=${(x) => x.submit()}\n ?disabled=${(x) => x.validateRequiredFields || x.missingTopic}\n >\n Submit\n </rapid-button>\n </div>\n </rapid-modal>\n`"
8902
9106
  }
8903
9107
  ],
8904
9108
  "exports": [
8905
9109
  {
8906
9110
  "kind": "js",
8907
- "name": "EmailDistributionRouteManagement",
8908
- "declaration": {
8909
- "name": "EmailDistributionRouteManagement",
8910
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts"
8911
- }
8912
- },
8913
- {
8914
- "kind": "custom-element-definition",
8915
- "name": "email-distribution-route-management",
9111
+ "name": "TemplateDialogTemplate",
8916
9112
  "declaration": {
8917
- "name": "EmailDistributionRouteManagement",
8918
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-distribution-route-management.ts"
9113
+ "name": "TemplateDialogTemplate",
9114
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts"
8919
9115
  }
8920
9116
  }
8921
9117
  ]
8922
9118
  },
8923
9119
  {
8924
9120
  "kind": "javascript-module",
8925
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts",
8926
- "declarations": [
8927
- {
8928
- "kind": "class",
8929
- "description": "",
8930
- "name": "EmailUserRouteManagement",
8931
- "superclass": {
8932
- "name": "GenesisElement",
8933
- "package": "@genesislcap/web-core"
8934
- },
8935
- "tagName": "email-user-route-management",
8936
- "customElement": true
8937
- }
8938
- ],
8939
- "exports": [
8940
- {
8941
- "kind": "js",
8942
- "name": "EmailUserRouteManagement",
8943
- "declaration": {
8944
- "name": "EmailUserRouteManagement",
8945
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts"
8946
- }
8947
- },
8948
- {
8949
- "kind": "custom-element-definition",
8950
- "name": "email-user-route-management",
8951
- "declaration": {
8952
- "name": "EmailUserRouteManagement",
8953
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/email-user-route-management.ts"
8954
- }
8955
- }
8956
- ]
8957
- },
8958
- {
8959
- "kind": "javascript-module",
8960
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts",
8961
- "declarations": [
8962
- {
8963
- "kind": "class",
8964
- "description": "",
8965
- "name": "LogRouteManagement",
8966
- "superclass": {
8967
- "name": "GenesisElement",
8968
- "package": "@genesislcap/web-core"
8969
- },
8970
- "tagName": "log-route-management",
8971
- "customElement": true
8972
- }
8973
- ],
8974
- "exports": [
8975
- {
8976
- "kind": "js",
8977
- "name": "LogRouteManagement",
8978
- "declaration": {
8979
- "name": "LogRouteManagement",
8980
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts"
8981
- }
8982
- },
8983
- {
8984
- "kind": "custom-element-definition",
8985
- "name": "log-route-management",
8986
- "declaration": {
8987
- "name": "LogRouteManagement",
8988
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/log-route-management.ts"
8989
- }
8990
- }
8991
- ]
8992
- },
8993
- {
8994
- "kind": "javascript-module",
8995
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts",
8996
- "declarations": [
8997
- {
8998
- "kind": "class",
8999
- "description": "",
9000
- "name": "MSTeamsRouteManagement",
9001
- "superclass": {
9002
- "name": "GenesisElement",
9003
- "package": "@genesislcap/web-core"
9004
- },
9005
- "tagName": "ms-teams-route-management",
9006
- "customElement": true
9007
- }
9008
- ],
9009
- "exports": [
9010
- {
9011
- "kind": "js",
9012
- "name": "MSTeamsRouteManagement",
9013
- "declaration": {
9014
- "name": "MSTeamsRouteManagement",
9015
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts"
9016
- }
9017
- },
9018
- {
9019
- "kind": "custom-element-definition",
9020
- "name": "ms-teams-route-management",
9021
- "declaration": {
9022
- "name": "MSTeamsRouteManagement",
9023
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/ms-teams-route-management.ts"
9024
- }
9025
- }
9026
- ]
9027
- },
9028
- {
9029
- "kind": "javascript-module",
9030
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts",
9031
- "declarations": [
9032
- {
9033
- "kind": "class",
9034
- "description": "",
9035
- "name": "ScreenRouteManagement",
9036
- "superclass": {
9037
- "name": "GenesisElement",
9038
- "package": "@genesislcap/web-core"
9039
- },
9040
- "tagName": "screen-route-management",
9041
- "customElement": true
9042
- }
9043
- ],
9044
- "exports": [
9045
- {
9046
- "kind": "js",
9047
- "name": "ScreenRouteManagement",
9048
- "declaration": {
9049
- "name": "ScreenRouteManagement",
9050
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts"
9051
- }
9052
- },
9053
- {
9054
- "kind": "custom-element-definition",
9055
- "name": "screen-route-management",
9056
- "declaration": {
9057
- "name": "ScreenRouteManagement",
9058
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/screen-route-management.ts"
9059
- }
9060
- }
9061
- ]
9062
- },
9063
- {
9064
- "kind": "javascript-module",
9065
- "path": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts",
9066
- "declarations": [
9067
- {
9068
- "kind": "class",
9069
- "description": "",
9070
- "name": "SlackRouteManagement",
9071
- "superclass": {
9072
- "name": "GenesisElement",
9073
- "package": "@genesislcap/web-core"
9074
- },
9075
- "tagName": "slack-route-management",
9076
- "customElement": true
9077
- }
9078
- ],
9079
- "exports": [
9080
- {
9081
- "kind": "js",
9082
- "name": "SlackRouteManagement",
9083
- "declaration": {
9084
- "name": "SlackRouteManagement",
9085
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts"
9086
- }
9087
- },
9088
- {
9089
- "kind": "custom-element-definition",
9090
- "name": "slack-route-management",
9091
- "declaration": {
9092
- "name": "SlackRouteManagement",
9093
- "module": "src/components/foundation-notification-dashboard/components/routes/tabs/slack-route-management.ts"
9094
- }
9095
- }
9096
- ]
9097
- },
9098
- {
9099
- "kind": "javascript-module",
9100
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts",
9101
- "declarations": [
9102
- {
9103
- "kind": "variable",
9104
- "name": "TemplateDialogTemplate",
9105
- "default": "html<TemplateDialog>`\n <rapid-modal ${ref('dialog')} class=\"dialog\" :onCloseCallback=${(x) => () => x.close()}>\n <div slot=\"top\" class=\"dialog-top\">${(x) => x.templateDialogTitle}</div>\n\n <div class=\"dialog-content\">\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.name)} autofocus>Name</rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.description)}>Description</rapid-text-field>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <label>Resource</label>\n <rapid-select :value=${sync((x) => x.resource)} position=\"below\">\n ${repeat(\n (x) => x.resources,\n html`\n <rapid-option value=${(x) => x}>${(x) => x}</rapid-option>\n `,\n )}\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Severity</label>\n <rapid-select :value=${sync((x) => x.severity)}>\n <options-datasource\n value-field=\"value\"\n label-field=\"value\"\n option-element=\"rapid-option\"\n :data=${(_) => Object.values(Severity).map((value) => ({ value }))}\n ></options-datasource>\n </rapid-select>\n </div>\n\n <div class=\"control\">\n <label>Update Type</label>\n <rapid-multiselect\n :selectedOptions=${(x) => x.updateType}\n @selectionChange=${(x, c) => {\n x.updateType = (c.event as CustomEvent).detail;\n }}\n search=\"false\"\n all=\"false\"\n >\n <multiselect-datasource\n value-field=\"value\"\n label-field=\"value\"\n :data=${() => Object.values(UpdateType).map((value) => ({ value, label: value }))}\n ></multiselect-datasource>\n </rapid-multiselect>\n </div>\n </div>\n\n <div class=\"content-row\">\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.header)}>Header</rapid-text-field>\n </div>\n\n <div class=\"control\">\n <rapid-text-field :value=${sync((x) => x.message)}>Message</rapid-text-field>\n </div>\n </div>\n\n <div class=\"control\">\n <label>Topic(s)</label>\n ${when(\n (x) => x.lockBroadcastTopics,\n html`\n <span class=\"topic-lock-hint\">\n Broadcast topics cannot be used after this template was saved with multiple subscriber\n routes. Delete it and create a new template instead.\n </span>\n `,\n )}\n ${when(\n (x) => x.topicOptions.length > 0,\n html<TemplateDialog>`\n <rapid-multiselect\n ${ref('topicsSelect')}\n class=\"channel-topics\"\n name=\"topics\"\n :selectedOptions=${(x) => x.selectedRouteIds}\n :options=${(x) => x.topicOptions}\n @selectionChange=${(x, c) => x.onSelectedTopicsChange(c.event)}\n search=\"true\"\n all=\"false\"\n ></rapid-multiselect>\n `,\n )}\n </div>\n\n <div class=\"control\">\n <label>Parameter(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.userParameters,\n html`\n <parameter-builder\n :parameter=${(x) => x}\n @edit=${(x, c) => c.parent.editParameter(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteParameter(eventDetail(c))}\n ></parameter-builder>\n `,\n )}\n </div>\n\n <div class=\"content-row\">\n <rapid-button @click=${(x) => x.newParameter()}>+ Parameter</rapid-button>\n </div>\n </div>\n </div>\n\n ${alertSoundAttachmentTemplate}\n\n <div class=\"control\">\n <label>Condition(s)</label>\n <div class=\"items\">\n <div class=\"content-row item\">\n ${repeat(\n (x) => x.conditions,\n html<ConditionNode, TemplateDialog>`\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.userParameters}\n :node=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(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.userParameters}\n :condition=${(x) => x}\n :isFirst=${(x, c) => c.index === 0}\n @edit=${(x, c) => c.parent.editCondition(eventDetail(c))}\n @delete=${(x, c) => c.parent.deleteCondition(eventDetail(c))}\n ></template-condition-builder>\n `,\n )}\n `,\n { positioning: true },\n )}\n </div>\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()}>\n + Group\n </rapid-button>\n </div>\n </div>\n <rapid-text-area\n class=\"expression-preview\"\n readonly\n :value=${(x) => x.rawExpressionPreview}\n >\n Compiled expression\n </rapid-text-area>\n </div>\n </div>\n\n <div slot=\"bottom\" class=\"dialog-bottom\">\n <rapid-button\n appearance=\"primary\"\n @click=${(x) => x.submit()}\n ?disabled=${(x) => x.validateRequiredFields || x.missingTopic}\n >\n Submit\n </rapid-button>\n </div>\n </rapid-modal>\n`"
9106
- }
9107
- ],
9108
- "exports": [
9109
- {
9110
- "kind": "js",
9111
- "name": "TemplateDialogTemplate",
9112
- "declaration": {
9113
- "name": "TemplateDialogTemplate",
9114
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.template.ts"
9115
- }
9116
- }
9117
- ]
9118
- },
9119
- {
9120
- "kind": "javascript-module",
9121
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts",
9121
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts",
9122
9122
  "declarations": [
9123
9123
  {
9124
9124
  "kind": "class",
@@ -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,66 +10047,15 @@
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"
10106
- },
10107
- {
10108
- "kind": "method",
10109
- "name": "conditionChanged"
10058
+ "name": "nodeChanged"
10110
10059
  },
10111
10060
  {
10112
10061
  "kind": "method",
@@ -10114,125 +10063,48 @@
10114
10063
  },
10115
10064
  {
10116
10065
  "kind": "method",
10117
- "name": "fieldsChanged"
10066
+ "name": "newCondition"
10118
10067
  },
10119
10068
  {
10120
10069
  "kind": "method",
10121
- "name": "assignLeftValue",
10122
- "privacy": "private"
10070
+ "name": "newGroup"
10123
10071
  },
10124
10072
  {
10125
10073
  "kind": "method",
10126
- "name": "assignRightValue"
10127
- },
10128
- {
10129
- "kind": "method",
10130
- "name": "getRightCriteria",
10131
- "return": {
10132
- "type": {
10133
- "text": "Array<any>"
10134
- }
10135
- }
10136
- },
10137
- {
10138
- "kind": "method",
10139
- "name": "getLogicalOperators",
10140
- "return": {
10141
- "type": {
10142
- "text": "Array<any>"
10143
- }
10144
- }
10145
- },
10146
- {
10147
- "kind": "method",
10148
- "name": "leftValueChanged"
10149
- },
10150
- {
10151
- "kind": "method",
10152
- "name": "logicalOperatorChanged"
10153
- },
10154
- {
10155
- "kind": "method",
10156
- "name": "rightCriteriaChanged"
10157
- },
10158
- {
10159
- "kind": "method",
10160
- "name": "clearRightValueText",
10161
- "privacy": "private"
10162
- },
10163
- {
10164
- "kind": "method",
10165
- "name": "clearRightValueSelect",
10166
- "privacy": "private"
10167
- },
10168
- {
10169
- "kind": "method",
10170
- "name": "rightValueTextChanged"
10171
- },
10172
- {
10173
- "kind": "method",
10174
- "name": "rightValueSelectChanged"
10175
- },
10176
- {
10177
- "kind": "method",
10178
- "name": "rightValueMultiSelectChanged"
10179
- },
10180
- {
10181
- "kind": "method",
10182
- "name": "getEnumValues",
10183
- "return": {
10184
- "type": {
10185
- "text": "string[]"
10186
- }
10187
- }
10188
- },
10189
- {
10190
- "kind": "method",
10191
- "name": "convertDateTime",
10074
+ "name": "editChild",
10192
10075
  "parameters": [
10193
10076
  {
10194
- "name": "dateTimeStr",
10077
+ "name": "_editedChild",
10195
10078
  "type": {
10196
- "text": "string"
10079
+ "text": "ConditionNode"
10197
10080
  }
10198
10081
  }
10199
10082
  ]
10200
10083
  },
10201
10084
  {
10202
10085
  "kind": "method",
10203
- "name": "convertLongForDatePicker",
10086
+ "name": "deleteChild",
10204
10087
  "parameters": [
10205
10088
  {
10206
- "name": "value",
10207
- "type": {
10208
- "text": "number"
10209
- }
10210
- },
10211
- {
10212
- "name": "time",
10213
- "default": "false",
10089
+ "name": "deletedChild",
10214
10090
  "type": {
10215
- "text": "boolean"
10091
+ "text": "ConditionNode"
10216
10092
  }
10217
10093
  }
10218
10094
  ]
10219
10095
  },
10220
10096
  {
10221
10097
  "kind": "method",
10222
- "name": "getAllFields"
10223
- },
10224
- {
10225
- "kind": "method",
10226
- "name": "getApplicableFields"
10098
+ "name": "deleteSelf"
10227
10099
  }
10228
10100
  ],
10229
10101
  "events": [
10230
10102
  {
10231
- "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
10103
+ "description": "Fired when this whole group should be removed",
10232
10104
  "name": "delete"
10233
10105
  },
10234
10106
  {
10235
- "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
10107
+ "description": "Fired when anything inside this group changes",
10236
10108
  "name": "edit"
10237
10109
  }
10238
10110
  ],
@@ -10240,70 +10112,64 @@
10240
10112
  "name": "GenesisElement",
10241
10113
  "package": "@genesislcap/web-core"
10242
10114
  },
10243
- "tagName": "rule-condition-builder",
10115
+ "tagName": "rule-condition-group",
10244
10116
  "customElement": true
10245
10117
  }
10246
10118
  ],
10247
10119
  "exports": [
10248
10120
  {
10249
10121
  "kind": "js",
10250
- "name": "RuleConditionBuilder",
10122
+ "name": "RuleConditionGroup",
10251
10123
  "declaration": {
10252
- "name": "RuleConditionBuilder",
10253
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
10124
+ "name": "RuleConditionGroup",
10125
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10254
10126
  }
10255
10127
  },
10256
10128
  {
10257
10129
  "kind": "custom-element-definition",
10258
- "name": "rule-condition-builder",
10130
+ "name": "rule-condition-group",
10259
10131
  "declaration": {
10260
- "name": "RuleConditionBuilder",
10261
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
10132
+ "name": "RuleConditionGroup",
10133
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10262
10134
  }
10263
10135
  }
10264
10136
  ]
10265
10137
  },
10266
10138
  {
10267
10139
  "kind": "javascript-module",
10268
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts",
10269
- "declarations": [],
10270
- "exports": []
10271
- },
10272
- {
10273
- "kind": "javascript-module",
10274
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
10140
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
10275
10141
  "declarations": [
10276
10142
  {
10277
10143
  "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`"
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`"
10280
10146
  }
10281
10147
  ],
10282
10148
  "exports": [
10283
10149
  {
10284
10150
  "kind": "js",
10285
- "name": "RuleConditionGroupTemplate",
10151
+ "name": "RuleConditionBuilderTemplate",
10286
10152
  "declaration": {
10287
- "name": "RuleConditionGroupTemplate",
10288
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
10153
+ "name": "RuleConditionBuilderTemplate",
10154
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
10289
10155
  }
10290
10156
  }
10291
10157
  ]
10292
10158
  },
10293
10159
  {
10294
10160
  "kind": "javascript-module",
10295
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
10161
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
10296
10162
  "declarations": [
10297
10163
  {
10298
10164
  "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",
10165
+ "description": "Condition builder for notification rule criteria.",
10166
+ "name": "RuleConditionBuilder",
10301
10167
  "members": [
10302
10168
  {
10303
10169
  "kind": "field",
10304
- "name": "node",
10170
+ "name": "condition",
10305
10171
  "type": {
10306
- "text": "ConditionGroupEntity"
10172
+ "text": "ConditionBuilderEntity"
10307
10173
  }
10308
10174
  },
10309
10175
  {
@@ -10331,15 +10197,66 @@
10331
10197
  },
10332
10198
  {
10333
10199
  "kind": "field",
10334
- "name": "groupChildren",
10200
+ "name": "leftValue",
10335
10201
  "type": {
10336
- "text": "ConditionNode[]"
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[]"
10337
10250
  },
10338
10251
  "default": "[]"
10339
10252
  },
10340
10253
  {
10341
10254
  "kind": "method",
10342
- "name": "nodeChanged"
10255
+ "name": "deleteCondition"
10256
+ },
10257
+ {
10258
+ "kind": "method",
10259
+ "name": "conditionChanged"
10343
10260
  },
10344
10261
  {
10345
10262
  "kind": "method",
@@ -10347,48 +10264,125 @@
10347
10264
  },
10348
10265
  {
10349
10266
  "kind": "method",
10350
- "name": "newCondition"
10267
+ "name": "fieldsChanged"
10351
10268
  },
10352
10269
  {
10353
10270
  "kind": "method",
10354
- "name": "newGroup"
10271
+ "name": "assignLeftValue",
10272
+ "privacy": "private"
10355
10273
  },
10356
10274
  {
10357
10275
  "kind": "method",
10358
- "name": "editChild",
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"
10303
+ },
10304
+ {
10305
+ "kind": "method",
10306
+ "name": "rightCriteriaChanged"
10307
+ },
10308
+ {
10309
+ "kind": "method",
10310
+ "name": "clearRightValueText",
10311
+ "privacy": "private"
10312
+ },
10313
+ {
10314
+ "kind": "method",
10315
+ "name": "clearRightValueSelect",
10316
+ "privacy": "private"
10317
+ },
10318
+ {
10319
+ "kind": "method",
10320
+ "name": "rightValueTextChanged"
10321
+ },
10322
+ {
10323
+ "kind": "method",
10324
+ "name": "rightValueSelectChanged"
10325
+ },
10326
+ {
10327
+ "kind": "method",
10328
+ "name": "rightValueMultiSelectChanged"
10329
+ },
10330
+ {
10331
+ "kind": "method",
10332
+ "name": "getEnumValues",
10333
+ "return": {
10334
+ "type": {
10335
+ "text": "string[]"
10336
+ }
10337
+ }
10338
+ },
10339
+ {
10340
+ "kind": "method",
10341
+ "name": "convertDateTime",
10359
10342
  "parameters": [
10360
10343
  {
10361
- "name": "_editedChild",
10344
+ "name": "dateTimeStr",
10362
10345
  "type": {
10363
- "text": "ConditionNode"
10346
+ "text": "string"
10364
10347
  }
10365
10348
  }
10366
10349
  ]
10367
10350
  },
10368
10351
  {
10369
10352
  "kind": "method",
10370
- "name": "deleteChild",
10353
+ "name": "convertLongForDatePicker",
10371
10354
  "parameters": [
10372
10355
  {
10373
- "name": "deletedChild",
10356
+ "name": "value",
10374
10357
  "type": {
10375
- "text": "ConditionNode"
10358
+ "text": "number"
10359
+ }
10360
+ },
10361
+ {
10362
+ "name": "time",
10363
+ "default": "false",
10364
+ "type": {
10365
+ "text": "boolean"
10376
10366
  }
10377
10367
  }
10378
10368
  ]
10379
10369
  },
10380
10370
  {
10381
10371
  "kind": "method",
10382
- "name": "deleteSelf"
10372
+ "name": "getAllFields"
10373
+ },
10374
+ {
10375
+ "kind": "method",
10376
+ "name": "getApplicableFields"
10383
10377
  }
10384
10378
  ],
10385
10379
  "events": [
10386
10380
  {
10387
- "description": "Fired when this whole group should be removed",
10381
+ "description": "Fired when a condition is deleted. detail: `ConditionBuilderEntity`",
10388
10382
  "name": "delete"
10389
10383
  },
10390
10384
  {
10391
- "description": "Fired when anything inside this group changes",
10385
+ "description": "Fired when a condition is edited. detail: `ConditionBuilderEntity`",
10392
10386
  "name": "edit"
10393
10387
  }
10394
10388
  ],
@@ -10396,183 +10390,245 @@
10396
10390
  "name": "GenesisElement",
10397
10391
  "package": "@genesislcap/web-core"
10398
10392
  },
10399
- "tagName": "rule-condition-group",
10393
+ "tagName": "rule-condition-builder",
10400
10394
  "customElement": true
10401
10395
  }
10402
10396
  ],
10403
10397
  "exports": [
10404
10398
  {
10405
10399
  "kind": "js",
10406
- "name": "RuleConditionGroup",
10400
+ "name": "RuleConditionBuilder",
10407
10401
  "declaration": {
10408
- "name": "RuleConditionGroup",
10409
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10402
+ "name": "RuleConditionBuilder",
10403
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
10410
10404
  }
10411
10405
  },
10412
10406
  {
10413
10407
  "kind": "custom-element-definition",
10414
- "name": "rule-condition-group",
10408
+ "name": "rule-condition-builder",
10415
10409
  "declaration": {
10416
- "name": "RuleConditionGroup",
10417
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
10410
+ "name": "RuleConditionBuilder",
10411
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts"
10418
10412
  }
10419
10413
  }
10420
10414
  ]
10421
10415
  },
10422
10416
  {
10423
10417
  "kind": "javascript-module",
10424
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
10418
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.types.ts",
10419
+ "declarations": [],
10420
+ "exports": []
10421
+ },
10422
+ {
10423
+ "kind": "javascript-module",
10424
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
10425
10425
  "declarations": [
10426
10426
  {
10427
10427
  "kind": "variable",
10428
- "name": "TemplateConditionGroupTemplate",
10429
- "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`"
10430
10430
  }
10431
10431
  ],
10432
10432
  "exports": [
10433
10433
  {
10434
10434
  "kind": "js",
10435
- "name": "TemplateConditionGroupTemplate",
10435
+ "name": "ParameterBuilderStyles",
10436
10436
  "declaration": {
10437
- "name": "TemplateConditionGroupTemplate",
10438
- "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"
10439
10439
  }
10440
10440
  }
10441
10441
  ]
10442
10442
  },
10443
10443
  {
10444
10444
  "kind": "javascript-module",
10445
- "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",
10446
10467
  "declarations": [
10447
10468
  {
10448
10469
  "kind": "class",
10449
- "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.",
10450
- "name": "TemplateConditionGroup",
10470
+ "description": "Parameter builder for notification templates.",
10471
+ "name": "ParameterBuilder",
10451
10472
  "members": [
10452
10473
  {
10453
10474
  "kind": "field",
10454
- "name": "node",
10475
+ "name": "parameter",
10455
10476
  "type": {
10456
- "text": "ConditionGroupEntity"
10477
+ "text": "ParameterBuilderEntity"
10457
10478
  }
10458
10479
  },
10459
10480
  {
10460
10481
  "kind": "field",
10461
- "name": "fields",
10482
+ "name": "name",
10462
10483
  "type": {
10463
- "text": "Field[]"
10464
- },
10465
- "default": "[]"
10484
+ "text": "string"
10485
+ }
10466
10486
  },
10467
10487
  {
10468
10488
  "kind": "field",
10469
- "name": "parameters",
10489
+ "name": "label",
10470
10490
  "type": {
10471
- "text": "Array<ParameterBuilderEntity>"
10472
- },
10473
- "default": "[]"
10491
+ "text": "string"
10492
+ }
10474
10493
  },
10475
10494
  {
10476
10495
  "kind": "field",
10477
- "name": "isFirst",
10496
+ "name": "type",
10478
10497
  "type": {
10479
- "text": "boolean"
10480
- },
10481
- "default": "false"
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
+ }
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
+ }
10482
10528
  },
10483
10529
  {
10484
10530
  "kind": "field",
10485
- "name": "joinOperator",
10531
+ "name": "sourceSelect",
10486
10532
  "type": {
10487
- "text": "string"
10533
+ "text": "Select"
10488
10534
  }
10489
10535
  },
10490
10536
  {
10491
10537
  "kind": "field",
10492
- "name": "groupChildren",
10538
+ "name": "reqRepItems",
10493
10539
  "type": {
10494
- "text": "ConditionNode[]"
10540
+ "text": "array"
10495
10541
  },
10496
- "default": "[]"
10542
+ "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
10497
10543
  },
10498
10544
  {
10499
10545
  "kind": "method",
10500
- "name": "nodeChanged"
10546
+ "name": "deleteParameter"
10501
10547
  },
10502
10548
  {
10503
10549
  "kind": "method",
10504
- "name": "joinOperatorChanged"
10550
+ "name": "parameterChanged"
10505
10551
  },
10506
10552
  {
10507
10553
  "kind": "method",
10508
- "name": "newCondition"
10554
+ "name": "nameChanged"
10509
10555
  },
10510
10556
  {
10511
10557
  "kind": "method",
10512
- "name": "newGroup"
10558
+ "name": "labelChanged"
10513
10559
  },
10514
10560
  {
10515
10561
  "kind": "method",
10516
- "name": "editChild",
10517
- "parameters": [
10518
- {
10519
- "name": "_editedChild",
10520
- "type": {
10521
- "text": "ConditionNode"
10522
- }
10523
- }
10524
- ]
10562
+ "name": "typeChanged"
10525
10563
  },
10526
10564
  {
10527
10565
  "kind": "method",
10528
- "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",
10529
10580
  "parameters": [
10530
10581
  {
10531
- "name": "deletedChild",
10532
- "type": {
10533
- "text": "ConditionNode"
10534
- }
10582
+ "name": "parameterAttribute"
10583
+ },
10584
+ {
10585
+ "name": "value"
10535
10586
  }
10536
10587
  ]
10537
- },
10538
- {
10539
- "kind": "method",
10540
- "name": "deleteSelf"
10541
10588
  }
10542
10589
  ],
10543
10590
  "events": [
10544
10591
  {
10545
- "description": "Fired when this whole group should be removed",
10592
+ "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
10546
10593
  "name": "delete"
10547
10594
  },
10548
10595
  {
10549
- "description": "Fired when anything inside this group changes",
10596
+ "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
10550
10597
  "name": "edit"
10551
10598
  }
10552
10599
  ],
10600
+ "attributes": [
10601
+ {
10602
+ "name": "parameter",
10603
+ "type": {
10604
+ "text": "ParameterBuilderEntity"
10605
+ },
10606
+ "fieldName": "parameter"
10607
+ }
10608
+ ],
10553
10609
  "superclass": {
10554
10610
  "name": "GenesisElement",
10555
10611
  "package": "@genesislcap/web-core"
10556
10612
  },
10557
- "tagName": "template-condition-group",
10613
+ "tagName": "parameter-builder",
10558
10614
  "customElement": true
10559
10615
  }
10560
10616
  ],
10561
10617
  "exports": [
10562
10618
  {
10563
10619
  "kind": "js",
10564
- "name": "TemplateConditionGroup",
10620
+ "name": "ParameterBuilder",
10565
10621
  "declaration": {
10566
- "name": "TemplateConditionGroup",
10567
- "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"
10568
10624
  }
10569
10625
  },
10570
10626
  {
10571
10627
  "kind": "custom-element-definition",
10572
- "name": "template-condition-group",
10628
+ "name": "parameter-builder",
10573
10629
  "declaration": {
10574
- "name": "TemplateConditionGroup",
10575
- "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"
10576
10632
  }
10577
10633
  }
10578
10634
  ]
@@ -10863,214 +10919,158 @@
10863
10919
  },
10864
10920
  {
10865
10921
  "kind": "javascript-module",
10866
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
10867
- "declarations": [
10868
- {
10869
- "kind": "variable",
10870
- "name": "ParameterBuilderStyles",
10871
- "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`"
10872
- }
10873
- ],
10874
- "exports": [
10875
- {
10876
- "kind": "js",
10877
- "name": "ParameterBuilderStyles",
10878
- "declaration": {
10879
- "name": "ParameterBuilderStyles",
10880
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
10881
- }
10882
- }
10883
- ]
10884
- },
10885
- {
10886
- "kind": "javascript-module",
10887
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
10922
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
10888
10923
  "declarations": [
10889
10924
  {
10890
10925
  "kind": "variable",
10891
- "name": "ParameterBuilderTemplate",
10892
- "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`"
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`"
10893
10928
  }
10894
10929
  ],
10895
10930
  "exports": [
10896
10931
  {
10897
10932
  "kind": "js",
10898
- "name": "ParameterBuilderTemplate",
10933
+ "name": "TemplateConditionGroupTemplate",
10899
10934
  "declaration": {
10900
- "name": "ParameterBuilderTemplate",
10901
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
10935
+ "name": "TemplateConditionGroupTemplate",
10936
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts"
10902
10937
  }
10903
10938
  }
10904
10939
  ]
10905
10940
  },
10906
10941
  {
10907
10942
  "kind": "javascript-module",
10908
- "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
10943
+ "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts",
10909
10944
  "declarations": [
10910
10945
  {
10911
10946
  "kind": "class",
10912
- "description": "Parameter builder for notification templates.",
10913
- "name": "ParameterBuilder",
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",
10914
10949
  "members": [
10915
10950
  {
10916
10951
  "kind": "field",
10917
- "name": "parameter",
10918
- "type": {
10919
- "text": "ParameterBuilderEntity"
10920
- }
10921
- },
10922
- {
10923
- "kind": "field",
10924
- "name": "name",
10925
- "type": {
10926
- "text": "string"
10927
- }
10928
- },
10929
- {
10930
- "kind": "field",
10931
- "name": "label",
10952
+ "name": "node",
10932
10953
  "type": {
10933
- "text": "string"
10954
+ "text": "ConditionGroupEntity"
10934
10955
  }
10935
10956
  },
10936
10957
  {
10937
10958
  "kind": "field",
10938
- "name": "type",
10959
+ "name": "fields",
10939
10960
  "type": {
10940
- "text": "string"
10941
- }
10961
+ "text": "Field[]"
10962
+ },
10963
+ "default": "[]"
10942
10964
  },
10943
10965
  {
10944
10966
  "kind": "field",
10945
- "name": "sourceType",
10967
+ "name": "parameters",
10946
10968
  "type": {
10947
- "text": "string"
10948
- }
10969
+ "text": "Array<ParameterBuilderEntity>"
10970
+ },
10971
+ "default": "[]"
10949
10972
  },
10950
10973
  {
10951
10974
  "kind": "field",
10952
- "name": "sourceSelected",
10975
+ "name": "isFirst",
10953
10976
  "type": {
10954
- "text": "string"
10955
- }
10977
+ "text": "boolean"
10978
+ },
10979
+ "default": "false"
10956
10980
  },
10957
10981
  {
10958
10982
  "kind": "field",
10959
- "name": "sourceTyped",
10983
+ "name": "joinOperator",
10960
10984
  "type": {
10961
10985
  "text": "string"
10962
10986
  }
10963
10987
  },
10964
10988
  {
10965
10989
  "kind": "field",
10966
- "name": "sourceTextField",
10967
- "type": {
10968
- "text": "TextField"
10969
- }
10970
- },
10971
- {
10972
- "kind": "field",
10973
- "name": "sourceSelect",
10974
- "type": {
10975
- "text": "Select"
10976
- }
10977
- },
10978
- {
10979
- "kind": "field",
10980
- "name": "reqRepItems",
10990
+ "name": "groupChildren",
10981
10991
  "type": {
10982
- "text": "array"
10992
+ "text": "ConditionNode[]"
10983
10993
  },
10984
- "default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
10985
- },
10986
- {
10987
- "kind": "method",
10988
- "name": "deleteParameter"
10989
- },
10990
- {
10991
- "kind": "method",
10992
- "name": "parameterChanged"
10993
- },
10994
- {
10995
- "kind": "method",
10996
- "name": "nameChanged"
10994
+ "default": "[]"
10997
10995
  },
10998
10996
  {
10999
10997
  "kind": "method",
11000
- "name": "labelChanged"
10998
+ "name": "nodeChanged"
11001
10999
  },
11002
11000
  {
11003
11001
  "kind": "method",
11004
- "name": "typeChanged"
11002
+ "name": "joinOperatorChanged"
11005
11003
  },
11006
11004
  {
11007
11005
  "kind": "method",
11008
- "name": "sourceTypeChanged"
11006
+ "name": "newCondition"
11009
11007
  },
11010
11008
  {
11011
11009
  "kind": "method",
11012
- "name": "sourceSelectedChanged"
11010
+ "name": "newGroup"
11013
11011
  },
11014
11012
  {
11015
11013
  "kind": "method",
11016
- "name": "sourceTypedChanged"
11014
+ "name": "editChild",
11015
+ "parameters": [
11016
+ {
11017
+ "name": "_editedChild",
11018
+ "type": {
11019
+ "text": "ConditionNode"
11020
+ }
11021
+ }
11022
+ ]
11017
11023
  },
11018
11024
  {
11019
11025
  "kind": "method",
11020
- "name": "genericChanged",
11021
- "privacy": "private",
11026
+ "name": "deleteChild",
11022
11027
  "parameters": [
11023
11028
  {
11024
- "name": "parameterAttribute"
11025
- },
11026
- {
11027
- "name": "value"
11029
+ "name": "deletedChild",
11030
+ "type": {
11031
+ "text": "ConditionNode"
11032
+ }
11028
11033
  }
11029
11034
  ]
11035
+ },
11036
+ {
11037
+ "kind": "method",
11038
+ "name": "deleteSelf"
11030
11039
  }
11031
11040
  ],
11032
11041
  "events": [
11033
11042
  {
11034
- "description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
11043
+ "description": "Fired when this whole group should be removed",
11035
11044
  "name": "delete"
11036
11045
  },
11037
11046
  {
11038
- "description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
11047
+ "description": "Fired when anything inside this group changes",
11039
11048
  "name": "edit"
11040
11049
  }
11041
11050
  ],
11042
- "attributes": [
11043
- {
11044
- "name": "parameter",
11045
- "type": {
11046
- "text": "ParameterBuilderEntity"
11047
- },
11048
- "fieldName": "parameter"
11049
- }
11050
- ],
11051
11051
  "superclass": {
11052
11052
  "name": "GenesisElement",
11053
11053
  "package": "@genesislcap/web-core"
11054
11054
  },
11055
- "tagName": "parameter-builder",
11055
+ "tagName": "template-condition-group",
11056
11056
  "customElement": true
11057
11057
  }
11058
11058
  ],
11059
11059
  "exports": [
11060
11060
  {
11061
11061
  "kind": "js",
11062
- "name": "ParameterBuilder",
11062
+ "name": "TemplateConditionGroup",
11063
11063
  "declaration": {
11064
- "name": "ParameterBuilder",
11065
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
11064
+ "name": "TemplateConditionGroup",
11065
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
11066
11066
  }
11067
11067
  },
11068
11068
  {
11069
11069
  "kind": "custom-element-definition",
11070
- "name": "parameter-builder",
11070
+ "name": "template-condition-group",
11071
11071
  "declaration": {
11072
- "name": "ParameterBuilder",
11073
- "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
11072
+ "name": "TemplateConditionGroup",
11073
+ "module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.ts"
11074
11074
  }
11075
11075
  }
11076
11076
  ]