@genesislcap/pbc-notify-ui 15.22.0 → 15.22.2

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.
@@ -479,6 +479,27 @@
479
479
  }
480
480
  ]
481
481
  },
482
+ {
483
+ "kind": "javascript-module",
484
+ "path": "src/styles/scrollbar.styles.ts",
485
+ "declarations": [
486
+ {
487
+ "kind": "variable",
488
+ "name": "scrollbarStyles",
489
+ "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`"
490
+ }
491
+ ],
492
+ "exports": [
493
+ {
494
+ "kind": "js",
495
+ "name": "scrollbarStyles",
496
+ "declaration": {
497
+ "name": "scrollbarStyles",
498
+ "module": "src/styles/scrollbar.styles.ts"
499
+ }
500
+ }
501
+ ]
502
+ },
482
503
  {
483
504
  "kind": "javascript-module",
484
505
  "path": "src/utils/eventDetail.ts",
@@ -800,27 +821,6 @@
800
821
  }
801
822
  ]
802
823
  },
803
- {
804
- "kind": "javascript-module",
805
- "path": "src/styles/scrollbar.styles.ts",
806
- "declarations": [
807
- {
808
- "kind": "variable",
809
- "name": "scrollbarStyles",
810
- "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`"
811
- }
812
- ],
813
- "exports": [
814
- {
815
- "kind": "js",
816
- "name": "scrollbarStyles",
817
- "declaration": {
818
- "name": "scrollbarStyles",
819
- "module": "src/styles/scrollbar.styles.ts"
820
- }
821
- }
822
- ]
823
- },
824
824
  {
825
825
  "kind": "javascript-module",
826
826
  "path": "src/components/foundation-inbox/inbox.styles.ts",
@@ -4229,6 +4229,95 @@
4229
4229
  }
4230
4230
  ]
4231
4231
  },
4232
+ {
4233
+ "kind": "javascript-module",
4234
+ "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
4235
+ "declarations": [
4236
+ {
4237
+ "kind": "variable",
4238
+ "name": "ConditionBuilderStyles",
4239
+ "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
4240
+ },
4241
+ {
4242
+ "kind": "variable",
4243
+ "name": "ConditionGroupStyles",
4244
+ "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
4245
+ }
4246
+ ],
4247
+ "exports": [
4248
+ {
4249
+ "kind": "js",
4250
+ "name": "ConditionBuilderStyles",
4251
+ "declaration": {
4252
+ "name": "ConditionBuilderStyles",
4253
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4254
+ }
4255
+ },
4256
+ {
4257
+ "kind": "js",
4258
+ "name": "ConditionGroupStyles",
4259
+ "declaration": {
4260
+ "name": "ConditionGroupStyles",
4261
+ "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4262
+ }
4263
+ }
4264
+ ]
4265
+ },
4266
+ {
4267
+ "kind": "javascript-module",
4268
+ "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
4269
+ "declarations": [
4270
+ {
4271
+ "kind": "variable",
4272
+ "name": "DynamicRuleManagementStyles",
4273
+ "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
4274
+ },
4275
+ {
4276
+ "kind": "variable",
4277
+ "name": "DynamicRuleDialogStyles",
4278
+ "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
4279
+ }
4280
+ ],
4281
+ "exports": [
4282
+ {
4283
+ "kind": "js",
4284
+ "name": "DynamicRuleManagementStyles",
4285
+ "declaration": {
4286
+ "name": "DynamicRuleManagementStyles",
4287
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4288
+ }
4289
+ },
4290
+ {
4291
+ "kind": "js",
4292
+ "name": "DynamicRuleDialogStyles",
4293
+ "declaration": {
4294
+ "name": "DynamicRuleDialogStyles",
4295
+ "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4296
+ }
4297
+ }
4298
+ ]
4299
+ },
4300
+ {
4301
+ "kind": "javascript-module",
4302
+ "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
4303
+ "declarations": [
4304
+ {
4305
+ "kind": "variable",
4306
+ "name": "managementGridStyles",
4307
+ "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
4308
+ }
4309
+ ],
4310
+ "exports": [
4311
+ {
4312
+ "kind": "js",
4313
+ "name": "managementGridStyles",
4314
+ "declaration": {
4315
+ "name": "managementGridStyles",
4316
+ "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
4317
+ }
4318
+ }
4319
+ ]
4320
+ },
4232
4321
  {
4233
4322
  "kind": "javascript-module",
4234
4323
  "path": "src/components/foundation-notification-dashboard/types/expression-type.ts",
@@ -4829,95 +4918,6 @@
4829
4918
  }
4830
4919
  ]
4831
4920
  },
4832
- {
4833
- "kind": "javascript-module",
4834
- "path": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts",
4835
- "declarations": [
4836
- {
4837
- "kind": "variable",
4838
- "name": "ConditionBuilderStyles",
4839
- "default": "css`\n .condition-builder {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n rapid-button {\n margin: 0;\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the condition it joins,\n rendered as a pair of small text links rather than buttons - reads like\n a sentence connector (\"... and ...\") instead of a UI control competing\n with the row's fields for attention. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n .delete {\n margin: 0;\n display: flex;\n justify-content: center;\n height: calc(var(--design-unit) * 9px);\n }\n\n .delete:hover {\n background-color: color-mix(in srgb, var(--neutral-foreground-rest), transparent 89%);\n }\n\n rapid-text-field {\n width: 100%;\n margin-bottom: 0;\n }\n\n rapid-text-field::part(root) {\n height: calc(var(--design-unit) * 9px);\n }\n\n rapid-select {\n min-width: auto;\n }\n\n rapid-select.left-value::part(control) {\n width: 250px;\n }\n\n rapid-select.logical-operator::part(control) {\n width: 160px;\n }\n\n .logical-operator-null-and-blank {\n width: 100%;\n }\n\n rapid-select.right-criteria::part(control) {\n width: 135px;\n }\n\n rapid-select.right-criteria-user-entry {\n width: 100%;\n }\n\n rapid-select.right-criteria-select {\n width: 100%;\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n`"
4840
- },
4841
- {
4842
- "kind": "variable",
4843
- "name": "ConditionGroupStyles",
4844
- "default": "css`\n .condition-group-row {\n margin-bottom: calc(var(--design-unit) * 2px);\n }\n\n /* The AND/OR toggle sits on its own row ABOVE the group it joins - see\n ConditionBuilderStyles' .join-toggle-row/.join-text for why it's a pair\n of text links rather than buttons. */\n .join-toggle-row {\n display: flex;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .join-toggle {\n display: flex;\n gap: calc(var(--design-unit) * 1.5px);\n }\n\n .join-text {\n font-size: 11px;\n font-weight: 700;\n letter-spacing: 0.02em;\n color: var(--accent-fill-rest);\n cursor: pointer;\n text-decoration: underline dotted;\n text-underline-offset: 3px;\n opacity: 40%;\n }\n\n .join-text:hover {\n opacity: 70%;\n }\n\n .join-text.active {\n opacity: 100%;\n text-decoration: underline solid;\n }\n\n .join-text.active:hover {\n opacity: 100%;\n }\n\n /* A full bordered box reads as \"this is one parenthesized unit\" more\n literally than a left rail - it nests naturally too, a group inside a\n group just gets a second box drawn inside the first, like actual nested\n parens would look. */\n .condition-group-box {\n flex: 1;\n min-width: 0;\n border: calc(var(--design-unit) * 0.5px) solid\n color-mix(in srgb, var(--accent-fill-rest), transparent 25%);\n border-radius: calc(var(--design-unit) * 1px);\n padding: calc(var(--design-unit) * 2px);\n background-color: color-mix(in srgb, var(--accent-fill-rest), transparent 96%);\n }\n\n .condition-group-box > .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 2px);\n align-items: center;\n margin-top: calc(var(--design-unit) * 1px);\n }\n\n .condition-group-box > .content-row rapid-button {\n font-size: 12px;\n }\n\n rule-condition-builder,\n rule-condition-group,\n template-condition-builder,\n template-condition-group {\n display: block;\n margin-bottom: calc(var(--design-unit) * 1px);\n }\n\n .delete-group {\n margin: 0;\n opacity: 60%;\n }\n\n .delete-group:hover {\n opacity: 100%;\n }\n`"
4845
- }
4846
- ],
4847
- "exports": [
4848
- {
4849
- "kind": "js",
4850
- "name": "ConditionBuilderStyles",
4851
- "declaration": {
4852
- "name": "ConditionBuilderStyles",
4853
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4854
- }
4855
- },
4856
- {
4857
- "kind": "js",
4858
- "name": "ConditionGroupStyles",
4859
- "declaration": {
4860
- "name": "ConditionGroupStyles",
4861
- "module": "src/components/foundation-notification-dashboard/styles/condition-builder.styles.ts"
4862
- }
4863
- }
4864
- ]
4865
- },
4866
- {
4867
- "kind": "javascript-module",
4868
- "path": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts",
4869
- "declarations": [
4870
- {
4871
- "kind": "variable",
4872
- "name": "DynamicRuleManagementStyles",
4873
- "default": "css`\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n flex-direction: row-reverse;\n }\n\n .grid {\n height: 100%;\n }\n`"
4874
- },
4875
- {
4876
- "kind": "variable",
4877
- "name": "DynamicRuleDialogStyles",
4878
- "default": "css`\n ${scrollbarStyles}\n ${top}\n ${bottom}\n\n rapid-modal::part(dialog) {\n padding: 0;\n background: var(--neutral-layer-4);\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n }\n\n .dialog-content {\n display: flex;\n flex-direction: column;\n width: ${String(modalWidthPx)}px;\n max-height: 600px;\n overflow-y: scroll;\n gap: calc(var(--design-unit) * 3px);\n padding: calc(var(--design-unit) * 4px);\n }\n\n .content-row {\n display: flex;\n gap: calc(var(--design-unit) * 3px);\n }\n\n .control {\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: calc(var(--design-unit) * 2px);\n }\n\n .items {\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n display: flex;\n padding: calc(var(--design-unit) * 2px);\n flex-direction: column;\n }\n\n .item {\n gap: 0;\n flex-direction: column;\n margin-bottom: 0;\n }\n\n ${textField}\n ${select}\n\n rapid-button {\n margin: 0;\n }\n\n rapid-select {\n min-width: 0;\n }\n\n rapid-select::part(listbox) {\n max-height: 160px;\n }\n\n .horizontal {\n flex-direction: row;\n }\n\n .destination {\n align-self: center;\n }\n\n .topic {\n min-width: revert-layer;\n }\n\n .expression-preview {\n width: 100%;\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .expression-preview::part(control) {\n font-family: var(--body-font, monospace);\n font-size: 12px;\n color: var(--neutral-foreground-hint);\n min-height: calc(var(--design-unit) * 12px);\n resize: vertical;\n }\n\n .alert-sound {\n display: flex;\n flex-direction: column;\n gap: calc(var(--design-unit) * 2px);\n margin-top: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound .file-input {\n display: none;\n }\n\n .alert-sound-row {\n display: flex;\n align-items: center;\n gap: calc(var(--design-unit) * 2px);\n flex-wrap: wrap;\n border: calc(var(--stroke-width) * 1px) solid var(--neutral-stroke-divider-rest);\n border-radius: calc(var(--control-corner-radius) * 1px);\n padding: calc(var(--design-unit) * 2px);\n }\n\n .alert-sound-name {\n flex: 1;\n min-width: 120px;\n color: var(--neutral-foreground-hint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`"
4879
- }
4880
- ],
4881
- "exports": [
4882
- {
4883
- "kind": "js",
4884
- "name": "DynamicRuleManagementStyles",
4885
- "declaration": {
4886
- "name": "DynamicRuleManagementStyles",
4887
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4888
- }
4889
- },
4890
- {
4891
- "kind": "js",
4892
- "name": "DynamicRuleDialogStyles",
4893
- "declaration": {
4894
- "name": "DynamicRuleDialogStyles",
4895
- "module": "src/components/foundation-notification-dashboard/styles/dynamic-rule.styles.ts"
4896
- }
4897
- }
4898
- ]
4899
- },
4900
- {
4901
- "kind": "javascript-module",
4902
- "path": "src/components/foundation-notification-dashboard/styles/management.styles.ts",
4903
- "declarations": [
4904
- {
4905
- "kind": "variable",
4906
- "name": "managementGridStyles",
4907
- "default": "css`\n :host {\n height: 100%;\n }\n\n .container {\n display: flex;\n height: 100%;\n flex-direction: column;\n }\n\n .header {\n display: flex;\n }\n\n .grid {\n height: 100%;\n }\n`"
4908
- }
4909
- ],
4910
- "exports": [
4911
- {
4912
- "kind": "js",
4913
- "name": "managementGridStyles",
4914
- "declaration": {
4915
- "name": "managementGridStyles",
4916
- "module": "src/components/foundation-notification-dashboard/styles/management.styles.ts"
4917
- }
4918
- }
4919
- ]
4920
- },
4921
4921
  {
4922
4922
  "kind": "javascript-module",
4923
4923
  "path": "src/components/foundation-inbox/components/foundation-inbox-counter/foundation-inbox-counter.styles.ts",
@@ -8347,39 +8347,39 @@
8347
8347
  },
8348
8348
  {
8349
8349
  "kind": "javascript-module",
8350
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
8350
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
8351
8351
  "declarations": [
8352
8352
  {
8353
8353
  "kind": "variable",
8354
- "name": "RuleConditionBuilderTemplate",
8355
- "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`"
8354
+ "name": "RuleConditionGroupTemplate",
8355
+ "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`"
8356
8356
  }
8357
8357
  ],
8358
8358
  "exports": [
8359
8359
  {
8360
8360
  "kind": "js",
8361
- "name": "RuleConditionBuilderTemplate",
8361
+ "name": "RuleConditionGroupTemplate",
8362
8362
  "declaration": {
8363
- "name": "RuleConditionBuilderTemplate",
8364
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
8363
+ "name": "RuleConditionGroupTemplate",
8364
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
8365
8365
  }
8366
8366
  }
8367
8367
  ]
8368
8368
  },
8369
8369
  {
8370
8370
  "kind": "javascript-module",
8371
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
8371
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
8372
8372
  "declarations": [
8373
8373
  {
8374
8374
  "kind": "class",
8375
- "description": "Condition builder for notification rule criteria.",
8376
- "name": "RuleConditionBuilder",
8375
+ "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.",
8376
+ "name": "RuleConditionGroup",
8377
8377
  "members": [
8378
8378
  {
8379
8379
  "kind": "field",
8380
- "name": "condition",
8380
+ "name": "node",
8381
8381
  "type": {
8382
- "text": "ConditionBuilderEntity"
8382
+ "text": "ConditionGroupEntity"
8383
8383
  }
8384
8384
  },
8385
8385
  {
@@ -8407,19 +8407,169 @@
8407
8407
  },
8408
8408
  {
8409
8409
  "kind": "field",
8410
- "name": "leftValue",
8410
+ "name": "groupChildren",
8411
8411
  "type": {
8412
- "text": "string"
8412
+ "text": "ConditionNode[]"
8413
8413
  },
8414
- "default": "null"
8414
+ "default": "[]"
8415
8415
  },
8416
8416
  {
8417
- "kind": "field",
8418
- "name": "leftValueItems",
8419
- "type": {
8420
- "text": "Array<any>"
8421
- },
8422
- "default": "[]"
8417
+ "kind": "method",
8418
+ "name": "nodeChanged"
8419
+ },
8420
+ {
8421
+ "kind": "method",
8422
+ "name": "joinOperatorChanged"
8423
+ },
8424
+ {
8425
+ "kind": "method",
8426
+ "name": "newCondition"
8427
+ },
8428
+ {
8429
+ "kind": "method",
8430
+ "name": "newGroup"
8431
+ },
8432
+ {
8433
+ "kind": "method",
8434
+ "name": "editChild",
8435
+ "parameters": [
8436
+ {
8437
+ "name": "_editedChild",
8438
+ "type": {
8439
+ "text": "ConditionNode"
8440
+ }
8441
+ }
8442
+ ]
8443
+ },
8444
+ {
8445
+ "kind": "method",
8446
+ "name": "deleteChild",
8447
+ "parameters": [
8448
+ {
8449
+ "name": "deletedChild",
8450
+ "type": {
8451
+ "text": "ConditionNode"
8452
+ }
8453
+ }
8454
+ ]
8455
+ },
8456
+ {
8457
+ "kind": "method",
8458
+ "name": "deleteSelf"
8459
+ }
8460
+ ],
8461
+ "events": [
8462
+ {
8463
+ "description": "Fired when this whole group should be removed",
8464
+ "name": "delete"
8465
+ },
8466
+ {
8467
+ "description": "Fired when anything inside this group changes",
8468
+ "name": "edit"
8469
+ }
8470
+ ],
8471
+ "superclass": {
8472
+ "name": "GenesisElement",
8473
+ "package": "@genesislcap/web-core"
8474
+ },
8475
+ "tagName": "rule-condition-group",
8476
+ "customElement": true
8477
+ }
8478
+ ],
8479
+ "exports": [
8480
+ {
8481
+ "kind": "js",
8482
+ "name": "RuleConditionGroup",
8483
+ "declaration": {
8484
+ "name": "RuleConditionGroup",
8485
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8486
+ }
8487
+ },
8488
+ {
8489
+ "kind": "custom-element-definition",
8490
+ "name": "rule-condition-group",
8491
+ "declaration": {
8492
+ "name": "RuleConditionGroup",
8493
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8494
+ }
8495
+ }
8496
+ ]
8497
+ },
8498
+ {
8499
+ "kind": "javascript-module",
8500
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts",
8501
+ "declarations": [
8502
+ {
8503
+ "kind": "variable",
8504
+ "name": "RuleConditionBuilderTemplate",
8505
+ "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`"
8506
+ }
8507
+ ],
8508
+ "exports": [
8509
+ {
8510
+ "kind": "js",
8511
+ "name": "RuleConditionBuilderTemplate",
8512
+ "declaration": {
8513
+ "name": "RuleConditionBuilderTemplate",
8514
+ "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.template.ts"
8515
+ }
8516
+ }
8517
+ ]
8518
+ },
8519
+ {
8520
+ "kind": "javascript-module",
8521
+ "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-builder/rule-condition-builder.ts",
8522
+ "declarations": [
8523
+ {
8524
+ "kind": "class",
8525
+ "description": "Condition builder for notification rule criteria.",
8526
+ "name": "RuleConditionBuilder",
8527
+ "members": [
8528
+ {
8529
+ "kind": "field",
8530
+ "name": "condition",
8531
+ "type": {
8532
+ "text": "ConditionBuilderEntity"
8533
+ }
8534
+ },
8535
+ {
8536
+ "kind": "field",
8537
+ "name": "fields",
8538
+ "type": {
8539
+ "text": "Field[]"
8540
+ },
8541
+ "default": "[]"
8542
+ },
8543
+ {
8544
+ "kind": "field",
8545
+ "name": "isFirst",
8546
+ "type": {
8547
+ "text": "boolean"
8548
+ },
8549
+ "default": "false"
8550
+ },
8551
+ {
8552
+ "kind": "field",
8553
+ "name": "joinOperator",
8554
+ "type": {
8555
+ "text": "string"
8556
+ }
8557
+ },
8558
+ {
8559
+ "kind": "field",
8560
+ "name": "leftValue",
8561
+ "type": {
8562
+ "text": "string"
8563
+ },
8564
+ "default": "null"
8565
+ },
8566
+ {
8567
+ "kind": "field",
8568
+ "name": "leftValueItems",
8569
+ "type": {
8570
+ "text": "Array<any>"
8571
+ },
8572
+ "default": "[]"
8423
8573
  },
8424
8574
  {
8425
8575
  "kind": "field",
@@ -8629,156 +8779,6 @@
8629
8779
  "declarations": [],
8630
8780
  "exports": []
8631
8781
  },
8632
- {
8633
- "kind": "javascript-module",
8634
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts",
8635
- "declarations": [
8636
- {
8637
- "kind": "variable",
8638
- "name": "RuleConditionGroupTemplate",
8639
- "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`"
8640
- }
8641
- ],
8642
- "exports": [
8643
- {
8644
- "kind": "js",
8645
- "name": "RuleConditionGroupTemplate",
8646
- "declaration": {
8647
- "name": "RuleConditionGroupTemplate",
8648
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.template.ts"
8649
- }
8650
- }
8651
- ]
8652
- },
8653
- {
8654
- "kind": "javascript-module",
8655
- "path": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts",
8656
- "declarations": [
8657
- {
8658
- "kind": "class",
8659
- "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.",
8660
- "name": "RuleConditionGroup",
8661
- "members": [
8662
- {
8663
- "kind": "field",
8664
- "name": "node",
8665
- "type": {
8666
- "text": "ConditionGroupEntity"
8667
- }
8668
- },
8669
- {
8670
- "kind": "field",
8671
- "name": "fields",
8672
- "type": {
8673
- "text": "Field[]"
8674
- },
8675
- "default": "[]"
8676
- },
8677
- {
8678
- "kind": "field",
8679
- "name": "isFirst",
8680
- "type": {
8681
- "text": "boolean"
8682
- },
8683
- "default": "false"
8684
- },
8685
- {
8686
- "kind": "field",
8687
- "name": "joinOperator",
8688
- "type": {
8689
- "text": "string"
8690
- }
8691
- },
8692
- {
8693
- "kind": "field",
8694
- "name": "groupChildren",
8695
- "type": {
8696
- "text": "ConditionNode[]"
8697
- },
8698
- "default": "[]"
8699
- },
8700
- {
8701
- "kind": "method",
8702
- "name": "nodeChanged"
8703
- },
8704
- {
8705
- "kind": "method",
8706
- "name": "joinOperatorChanged"
8707
- },
8708
- {
8709
- "kind": "method",
8710
- "name": "newCondition"
8711
- },
8712
- {
8713
- "kind": "method",
8714
- "name": "newGroup"
8715
- },
8716
- {
8717
- "kind": "method",
8718
- "name": "editChild",
8719
- "parameters": [
8720
- {
8721
- "name": "_editedChild",
8722
- "type": {
8723
- "text": "ConditionNode"
8724
- }
8725
- }
8726
- ]
8727
- },
8728
- {
8729
- "kind": "method",
8730
- "name": "deleteChild",
8731
- "parameters": [
8732
- {
8733
- "name": "deletedChild",
8734
- "type": {
8735
- "text": "ConditionNode"
8736
- }
8737
- }
8738
- ]
8739
- },
8740
- {
8741
- "kind": "method",
8742
- "name": "deleteSelf"
8743
- }
8744
- ],
8745
- "events": [
8746
- {
8747
- "description": "Fired when this whole group should be removed",
8748
- "name": "delete"
8749
- },
8750
- {
8751
- "description": "Fired when anything inside this group changes",
8752
- "name": "edit"
8753
- }
8754
- ],
8755
- "superclass": {
8756
- "name": "GenesisElement",
8757
- "package": "@genesislcap/web-core"
8758
- },
8759
- "tagName": "rule-condition-group",
8760
- "customElement": true
8761
- }
8762
- ],
8763
- "exports": [
8764
- {
8765
- "kind": "js",
8766
- "name": "RuleConditionGroup",
8767
- "declaration": {
8768
- "name": "RuleConditionGroup",
8769
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8770
- }
8771
- },
8772
- {
8773
- "kind": "custom-element-definition",
8774
- "name": "rule-condition-group",
8775
- "declaration": {
8776
- "name": "RuleConditionGroup",
8777
- "module": "src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-condition-group/rule-condition-group.ts"
8778
- }
8779
- }
8780
- ]
8781
- },
8782
8782
  {
8783
8783
  "kind": "javascript-module",
8784
8784
  "path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
@@ -255,17 +255,6 @@ export declare const TemplateDialog: React.ForwardRefExoticComponent<
255
255
  >;
256
256
  export type TemplateDialogRef = TemplateDialogWC;
257
257
 
258
- export declare const RuleConditionBuilder: React.ForwardRefExoticComponent<
259
- React.PropsWithChildren<
260
- Omit<PublicOf<RuleConditionBuilderWC>, 'children' | 'style'> &
261
- HTMLWCProps & {
262
- onDelete?: (event: CustomEvent<ConditionBuilderEntity>) => void;
263
- onEdit?: (event: CustomEvent<ConditionBuilderEntity>) => void;
264
- }
265
- > & React.RefAttributes<RuleConditionBuilderWC>
266
- >;
267
- export type RuleConditionBuilderRef = RuleConditionBuilderWC;
268
-
269
258
  export declare const RuleConditionGroup: React.ForwardRefExoticComponent<
270
259
  React.PropsWithChildren<
271
260
  Omit<PublicOf<RuleConditionGroupWC>, 'children' | 'style'> &
@@ -277,6 +266,17 @@ export declare const RuleConditionGroup: React.ForwardRefExoticComponent<
277
266
  >;
278
267
  export type RuleConditionGroupRef = RuleConditionGroupWC;
279
268
 
269
+ export declare const RuleConditionBuilder: React.ForwardRefExoticComponent<
270
+ React.PropsWithChildren<
271
+ Omit<PublicOf<RuleConditionBuilderWC>, 'children' | 'style'> &
272
+ HTMLWCProps & {
273
+ onDelete?: (event: CustomEvent<ConditionBuilderEntity>) => void;
274
+ onEdit?: (event: CustomEvent<ConditionBuilderEntity>) => void;
275
+ }
276
+ > & React.RefAttributes<RuleConditionBuilderWC>
277
+ >;
278
+ export type RuleConditionBuilderRef = RuleConditionBuilderWC;
279
+
280
280
  export declare const ParameterBuilder: React.ForwardRefExoticComponent<
281
281
  React.PropsWithChildren<
282
282
  Omit<PublicOf<ParameterBuilderWC>, 'children' | 'style'> &
package/dist/react.cjs CHANGED
@@ -200,7 +200,7 @@ const TemplateDialog = React.forwardRef(function TemplateDialog(props, ref) {
200
200
  return React.createElement(customElements.getName(TemplateDialogWC) ?? 'template-dialog', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
201
201
  });
202
202
 
203
- const RuleConditionBuilder = React.forwardRef(function RuleConditionBuilder(props, ref) {
203
+ const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, ref) {
204
204
  const { onDelete, onEdit, children, ...rest } = props;
205
205
  const _innerRef = React.useRef(null);
206
206
  const _onDeleteRef = React.useRef(onDelete);
@@ -219,10 +219,10 @@ const RuleConditionBuilder = React.forwardRef(function RuleConditionBuilder(prop
219
219
  el.removeEventListener('edit', _onEditFn);
220
220
  };
221
221
  }, []);
222
- return React.createElement(customElements.getName(RuleConditionBuilderWC) ?? 'rule-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
222
+ return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
223
223
  });
224
224
 
225
- const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, ref) {
225
+ const RuleConditionBuilder = React.forwardRef(function RuleConditionBuilder(props, ref) {
226
226
  const { onDelete, onEdit, children, ...rest } = props;
227
227
  const _innerRef = React.useRef(null);
228
228
  const _onDeleteRef = React.useRef(onDelete);
@@ -241,7 +241,7 @@ const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, r
241
241
  el.removeEventListener('edit', _onEditFn);
242
242
  };
243
243
  }, []);
244
- return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
244
+ return React.createElement(customElements.getName(RuleConditionBuilderWC) ?? 'rule-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
245
245
  });
246
246
 
247
247
  const ParameterBuilder = React.forwardRef(function ParameterBuilder(props, ref) {
@@ -332,8 +332,8 @@ module.exports = {
332
332
  SlackRouteManagement,
333
333
  RuleDialog,
334
334
  TemplateDialog,
335
- RuleConditionBuilder,
336
335
  RuleConditionGroup,
336
+ RuleConditionBuilder,
337
337
  ParameterBuilder,
338
338
  TemplateConditionBuilder,
339
339
  TemplateConditionGroup,
package/dist/react.mjs CHANGED
@@ -198,7 +198,7 @@ export const TemplateDialog = React.forwardRef(function TemplateDialog(props, re
198
198
  return React.createElement(customElements.getName(TemplateDialogWC) ?? 'template-dialog', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
199
199
  });
200
200
 
201
- export const RuleConditionBuilder = React.forwardRef(function RuleConditionBuilder(props, ref) {
201
+ export const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, ref) {
202
202
  const { onDelete, onEdit, children, ...rest } = props;
203
203
  const _innerRef = React.useRef(null);
204
204
  const _onDeleteRef = React.useRef(onDelete);
@@ -217,10 +217,10 @@ export const RuleConditionBuilder = React.forwardRef(function RuleConditionBuild
217
217
  el.removeEventListener('edit', _onEditFn);
218
218
  };
219
219
  }, []);
220
- return React.createElement(customElements.getName(RuleConditionBuilderWC) ?? 'rule-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
220
+ return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
221
221
  });
222
222
 
223
- export const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, ref) {
223
+ export const RuleConditionBuilder = React.forwardRef(function RuleConditionBuilder(props, ref) {
224
224
  const { onDelete, onEdit, children, ...rest } = props;
225
225
  const _innerRef = React.useRef(null);
226
226
  const _onDeleteRef = React.useRef(onDelete);
@@ -239,7 +239,7 @@ export const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(p
239
239
  el.removeEventListener('edit', _onEditFn);
240
240
  };
241
241
  }, []);
242
- return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
242
+ return React.createElement(customElements.getName(RuleConditionBuilderWC) ?? 'rule-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
243
243
  });
244
244
 
245
245
  export const ParameterBuilder = React.forwardRef(function ParameterBuilder(props, ref) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/pbc-notify-ui",
3
3
  "description": "Genesis PBC Notify UI",
4
- "version": "15.22.0",
4
+ "version": "15.22.2",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "workspaces": [
7
7
  "client"
@@ -81,30 +81,30 @@
81
81
  "@commitlint/cli": "^19.2.1",
82
82
  "@commitlint/config-conventional": "^19.1.0",
83
83
  "@commitlint/format": "^19.0.3",
84
- "@genesislcap/design-system-configurator": "15.22.0",
85
- "@genesislcap/eslint-config": "15.22.0",
86
- "@genesislcap/eslint-stylelint-builder": "15.22.0",
87
- "@genesislcap/foundation-testing": "15.22.0",
88
- "@genesislcap/genx": "15.22.0",
89
- "@genesislcap/prettier-config": "15.22.0",
90
- "@genesislcap/stylelint-config": "15.22.0",
91
- "@genesislcap/vite-builder": "15.22.0",
92
- "@genesislcap/webpack-builder": "15.22.0",
84
+ "@genesislcap/design-system-configurator": "15.22.2",
85
+ "@genesislcap/eslint-config": "15.22.2",
86
+ "@genesislcap/eslint-stylelint-builder": "15.22.2",
87
+ "@genesislcap/foundation-testing": "15.22.2",
88
+ "@genesislcap/genx": "15.22.2",
89
+ "@genesislcap/prettier-config": "15.22.2",
90
+ "@genesislcap/stylelint-config": "15.22.2",
91
+ "@genesislcap/vite-builder": "15.22.2",
92
+ "@genesislcap/webpack-builder": "15.22.2",
93
93
  "dayjs": "^1.11.7"
94
94
  },
95
95
  "dependencies": {
96
- "@genesislcap/foundation-comms": "15.22.0",
97
- "@genesislcap/foundation-criteria": "15.22.0",
98
- "@genesislcap/foundation-entity-management": "15.22.0",
99
- "@genesislcap/foundation-forms": "15.22.0",
100
- "@genesislcap/foundation-layout": "15.22.0",
101
- "@genesislcap/foundation-logger": "15.22.0",
102
- "@genesislcap/foundation-notifications": "15.22.0",
103
- "@genesislcap/foundation-ui": "15.22.0",
104
- "@genesislcap/foundation-utils": "15.22.0",
105
- "@genesislcap/rapid-design-system": "15.22.0",
106
- "@genesislcap/rapid-grid-pro": "15.22.0",
107
- "@genesislcap/web-core": "15.22.0",
96
+ "@genesislcap/foundation-comms": "15.22.2",
97
+ "@genesislcap/foundation-criteria": "15.22.2",
98
+ "@genesislcap/foundation-entity-management": "15.22.2",
99
+ "@genesislcap/foundation-forms": "15.22.2",
100
+ "@genesislcap/foundation-layout": "15.22.2",
101
+ "@genesislcap/foundation-logger": "15.22.2",
102
+ "@genesislcap/foundation-notifications": "15.22.2",
103
+ "@genesislcap/foundation-ui": "15.22.2",
104
+ "@genesislcap/foundation-utils": "15.22.2",
105
+ "@genesislcap/rapid-design-system": "15.22.2",
106
+ "@genesislcap/rapid-grid-pro": "15.22.2",
107
+ "@genesislcap/web-core": "15.22.2",
108
108
  "lodash.debounce": "^4.0.8",
109
109
  "rxjs": "^7.5.4"
110
110
  },