@genesislcap/pbc-notify-ui 14.484.2 → 14.486.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.
- package/dist/custom-elements.json +254 -236
- package/dist/dts/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.d.ts.map +1 -1
- package/dist/dts/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.d.ts.map +1 -1
- package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts +1 -0
- package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts.map +1 -1
- package/dist/dts/notify.types.d.ts +2 -0
- package/dist/dts/notify.types.d.ts.map +1 -1
- package/dist/dts/react.d.ts +11 -11
- package/dist/esm/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.js +2 -1
- package/dist/esm/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.js +2 -1
- package/dist/esm/components/foundation-notification-dashboard/notification-dashboard.utils.js +54 -0
- package/dist/esm/notify.types.js +14 -0
- package/dist/react.cjs +5 -5
- package/dist/react.mjs +4 -4
- package/package.json +23 -23
- package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts +2 -1
- package/src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts +2 -1
- package/src/components/foundation-notification-dashboard/notification-dashboard.utils.ts +63 -0
- package/src/notify.types.ts +14 -0
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"type": {
|
|
90
90
|
"text": "array"
|
|
91
91
|
},
|
|
92
|
-
"default": "[\n {\n label: 'Equals',\n operator: 'EQUALS',\n },\n {\n label: 'Not Equals',\n operator: 'NOT_EQUALS',\n },\n {\n label: 'Greater Than',\n operator: 'GREATER_THAN',\n },\n {\n label: 'Less Than',\n operator: 'LESS_THAN',\n },\n {\n label: 'Null',\n operator: 'NULL',\n },\n {\n label: 'Not Null',\n operator: 'NOT_NULL',\n },\n {\n label: 'Blank',\n operator: 'BLANK',\n },\n {\n label: 'Not Blank',\n operator: 'NOT_BLANK',\n },\n]"
|
|
92
|
+
"default": "[\n {\n label: 'Equals',\n operator: 'EQUALS',\n },\n {\n label: 'Not Equals',\n operator: 'NOT_EQUALS',\n },\n {\n label: 'Greater Than',\n operator: 'GREATER_THAN',\n },\n {\n label: 'Less Than',\n operator: 'LESS_THAN',\n },\n {\n label: 'Starts With',\n operator: 'STARTS_WITH',\n },\n {\n label: 'Ends With',\n operator: 'ENDS_WITH',\n },\n {\n label: 'Null',\n operator: 'NULL',\n },\n {\n label: 'Not Null',\n operator: 'NOT_NULL',\n },\n {\n label: 'Blank',\n operator: 'BLANK',\n },\n {\n label: 'Not Blank',\n operator: 'NOT_BLANK',\n },\n]"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"kind": "variable",
|
|
@@ -379,6 +379,27 @@
|
|
|
379
379
|
}
|
|
380
380
|
]
|
|
381
381
|
},
|
|
382
|
+
{
|
|
383
|
+
"kind": "javascript-module",
|
|
384
|
+
"path": "src/styles/scrollbar.styles.ts",
|
|
385
|
+
"declarations": [
|
|
386
|
+
{
|
|
387
|
+
"kind": "variable",
|
|
388
|
+
"name": "scrollbarStyles",
|
|
389
|
+
"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`"
|
|
390
|
+
}
|
|
391
|
+
],
|
|
392
|
+
"exports": [
|
|
393
|
+
{
|
|
394
|
+
"kind": "js",
|
|
395
|
+
"name": "scrollbarStyles",
|
|
396
|
+
"declaration": {
|
|
397
|
+
"name": "scrollbarStyles",
|
|
398
|
+
"module": "src/styles/scrollbar.styles.ts"
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
]
|
|
402
|
+
},
|
|
382
403
|
{
|
|
383
404
|
"kind": "javascript-module",
|
|
384
405
|
"path": "src/utils/eventDetail.ts",
|
|
@@ -700,27 +721,6 @@
|
|
|
700
721
|
}
|
|
701
722
|
]
|
|
702
723
|
},
|
|
703
|
-
{
|
|
704
|
-
"kind": "javascript-module",
|
|
705
|
-
"path": "src/styles/scrollbar.styles.ts",
|
|
706
|
-
"declarations": [
|
|
707
|
-
{
|
|
708
|
-
"kind": "variable",
|
|
709
|
-
"name": "scrollbarStyles",
|
|
710
|
-
"default": "css`\n ::-webkit-scrollbar {\n width: calc((var(--base-height-multiplier) + var(--design-unit)) * 1px);\n }\n\n ::-webkit-scrollbar-track {\n background: var(--neutral-layer-1);\n }\n\n ::-webkit-scrollbar-thumb {\n background: var(--neutral-fill-rest);\n }\n`"
|
|
711
|
-
}
|
|
712
|
-
],
|
|
713
|
-
"exports": [
|
|
714
|
-
{
|
|
715
|
-
"kind": "js",
|
|
716
|
-
"name": "scrollbarStyles",
|
|
717
|
-
"declaration": {
|
|
718
|
-
"name": "scrollbarStyles",
|
|
719
|
-
"module": "src/styles/scrollbar.styles.ts"
|
|
720
|
-
}
|
|
721
|
-
}
|
|
722
|
-
]
|
|
723
|
-
},
|
|
724
724
|
{
|
|
725
725
|
"kind": "javascript-module",
|
|
726
726
|
"path": "src/components/foundation-inbox/inbox.styles.ts",
|
|
@@ -1831,6 +1831,24 @@
|
|
|
1831
1831
|
}
|
|
1832
1832
|
]
|
|
1833
1833
|
},
|
|
1834
|
+
{
|
|
1835
|
+
"kind": "method",
|
|
1836
|
+
"name": "hasUnsupportedOperator",
|
|
1837
|
+
"static": true,
|
|
1838
|
+
"return": {
|
|
1839
|
+
"type": {
|
|
1840
|
+
"text": "boolean"
|
|
1841
|
+
}
|
|
1842
|
+
},
|
|
1843
|
+
"parameters": [
|
|
1844
|
+
{
|
|
1845
|
+
"name": "conditions",
|
|
1846
|
+
"type": {
|
|
1847
|
+
"text": "ConditionNode[]"
|
|
1848
|
+
}
|
|
1849
|
+
}
|
|
1850
|
+
]
|
|
1851
|
+
},
|
|
1834
1852
|
{
|
|
1835
1853
|
"kind": "method",
|
|
1836
1854
|
"name": "flattenConditions",
|
|
@@ -6082,220 +6100,6 @@
|
|
|
6082
6100
|
}
|
|
6083
6101
|
]
|
|
6084
6102
|
},
|
|
6085
|
-
{
|
|
6086
|
-
"kind": "javascript-module",
|
|
6087
|
-
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
|
|
6088
|
-
"declarations": [
|
|
6089
|
-
{
|
|
6090
|
-
"kind": "variable",
|
|
6091
|
-
"name": "ParameterBuilderStyles",
|
|
6092
|
-
"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`"
|
|
6093
|
-
}
|
|
6094
|
-
],
|
|
6095
|
-
"exports": [
|
|
6096
|
-
{
|
|
6097
|
-
"kind": "js",
|
|
6098
|
-
"name": "ParameterBuilderStyles",
|
|
6099
|
-
"declaration": {
|
|
6100
|
-
"name": "ParameterBuilderStyles",
|
|
6101
|
-
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
|
|
6102
|
-
}
|
|
6103
|
-
}
|
|
6104
|
-
]
|
|
6105
|
-
},
|
|
6106
|
-
{
|
|
6107
|
-
"kind": "javascript-module",
|
|
6108
|
-
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
|
|
6109
|
-
"declarations": [
|
|
6110
|
-
{
|
|
6111
|
-
"kind": "variable",
|
|
6112
|
-
"name": "ParameterBuilderTemplate",
|
|
6113
|
-
"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`"
|
|
6114
|
-
}
|
|
6115
|
-
],
|
|
6116
|
-
"exports": [
|
|
6117
|
-
{
|
|
6118
|
-
"kind": "js",
|
|
6119
|
-
"name": "ParameterBuilderTemplate",
|
|
6120
|
-
"declaration": {
|
|
6121
|
-
"name": "ParameterBuilderTemplate",
|
|
6122
|
-
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
|
|
6123
|
-
}
|
|
6124
|
-
}
|
|
6125
|
-
]
|
|
6126
|
-
},
|
|
6127
|
-
{
|
|
6128
|
-
"kind": "javascript-module",
|
|
6129
|
-
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
|
|
6130
|
-
"declarations": [
|
|
6131
|
-
{
|
|
6132
|
-
"kind": "class",
|
|
6133
|
-
"description": "Parameter builder for notification templates.",
|
|
6134
|
-
"name": "ParameterBuilder",
|
|
6135
|
-
"members": [
|
|
6136
|
-
{
|
|
6137
|
-
"kind": "field",
|
|
6138
|
-
"name": "parameter",
|
|
6139
|
-
"type": {
|
|
6140
|
-
"text": "ParameterBuilderEntity"
|
|
6141
|
-
}
|
|
6142
|
-
},
|
|
6143
|
-
{
|
|
6144
|
-
"kind": "field",
|
|
6145
|
-
"name": "name",
|
|
6146
|
-
"type": {
|
|
6147
|
-
"text": "string"
|
|
6148
|
-
}
|
|
6149
|
-
},
|
|
6150
|
-
{
|
|
6151
|
-
"kind": "field",
|
|
6152
|
-
"name": "label",
|
|
6153
|
-
"type": {
|
|
6154
|
-
"text": "string"
|
|
6155
|
-
}
|
|
6156
|
-
},
|
|
6157
|
-
{
|
|
6158
|
-
"kind": "field",
|
|
6159
|
-
"name": "type",
|
|
6160
|
-
"type": {
|
|
6161
|
-
"text": "string"
|
|
6162
|
-
}
|
|
6163
|
-
},
|
|
6164
|
-
{
|
|
6165
|
-
"kind": "field",
|
|
6166
|
-
"name": "sourceType",
|
|
6167
|
-
"type": {
|
|
6168
|
-
"text": "string"
|
|
6169
|
-
}
|
|
6170
|
-
},
|
|
6171
|
-
{
|
|
6172
|
-
"kind": "field",
|
|
6173
|
-
"name": "sourceSelected",
|
|
6174
|
-
"type": {
|
|
6175
|
-
"text": "string"
|
|
6176
|
-
}
|
|
6177
|
-
},
|
|
6178
|
-
{
|
|
6179
|
-
"kind": "field",
|
|
6180
|
-
"name": "sourceTyped",
|
|
6181
|
-
"type": {
|
|
6182
|
-
"text": "string"
|
|
6183
|
-
}
|
|
6184
|
-
},
|
|
6185
|
-
{
|
|
6186
|
-
"kind": "field",
|
|
6187
|
-
"name": "sourceTextField",
|
|
6188
|
-
"type": {
|
|
6189
|
-
"text": "TextField"
|
|
6190
|
-
}
|
|
6191
|
-
},
|
|
6192
|
-
{
|
|
6193
|
-
"kind": "field",
|
|
6194
|
-
"name": "sourceSelect",
|
|
6195
|
-
"type": {
|
|
6196
|
-
"text": "Select"
|
|
6197
|
-
}
|
|
6198
|
-
},
|
|
6199
|
-
{
|
|
6200
|
-
"kind": "field",
|
|
6201
|
-
"name": "reqRepItems",
|
|
6202
|
-
"type": {
|
|
6203
|
-
"text": "array"
|
|
6204
|
-
},
|
|
6205
|
-
"default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
|
|
6206
|
-
},
|
|
6207
|
-
{
|
|
6208
|
-
"kind": "method",
|
|
6209
|
-
"name": "deleteParameter"
|
|
6210
|
-
},
|
|
6211
|
-
{
|
|
6212
|
-
"kind": "method",
|
|
6213
|
-
"name": "parameterChanged"
|
|
6214
|
-
},
|
|
6215
|
-
{
|
|
6216
|
-
"kind": "method",
|
|
6217
|
-
"name": "nameChanged"
|
|
6218
|
-
},
|
|
6219
|
-
{
|
|
6220
|
-
"kind": "method",
|
|
6221
|
-
"name": "labelChanged"
|
|
6222
|
-
},
|
|
6223
|
-
{
|
|
6224
|
-
"kind": "method",
|
|
6225
|
-
"name": "typeChanged"
|
|
6226
|
-
},
|
|
6227
|
-
{
|
|
6228
|
-
"kind": "method",
|
|
6229
|
-
"name": "sourceTypeChanged"
|
|
6230
|
-
},
|
|
6231
|
-
{
|
|
6232
|
-
"kind": "method",
|
|
6233
|
-
"name": "sourceSelectedChanged"
|
|
6234
|
-
},
|
|
6235
|
-
{
|
|
6236
|
-
"kind": "method",
|
|
6237
|
-
"name": "sourceTypedChanged"
|
|
6238
|
-
},
|
|
6239
|
-
{
|
|
6240
|
-
"kind": "method",
|
|
6241
|
-
"name": "genericChanged",
|
|
6242
|
-
"privacy": "private",
|
|
6243
|
-
"parameters": [
|
|
6244
|
-
{
|
|
6245
|
-
"name": "parameterAttribute"
|
|
6246
|
-
},
|
|
6247
|
-
{
|
|
6248
|
-
"name": "value"
|
|
6249
|
-
}
|
|
6250
|
-
]
|
|
6251
|
-
}
|
|
6252
|
-
],
|
|
6253
|
-
"events": [
|
|
6254
|
-
{
|
|
6255
|
-
"description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
|
|
6256
|
-
"name": "delete"
|
|
6257
|
-
},
|
|
6258
|
-
{
|
|
6259
|
-
"description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
|
|
6260
|
-
"name": "edit"
|
|
6261
|
-
}
|
|
6262
|
-
],
|
|
6263
|
-
"attributes": [
|
|
6264
|
-
{
|
|
6265
|
-
"name": "parameter",
|
|
6266
|
-
"type": {
|
|
6267
|
-
"text": "ParameterBuilderEntity"
|
|
6268
|
-
},
|
|
6269
|
-
"fieldName": "parameter"
|
|
6270
|
-
}
|
|
6271
|
-
],
|
|
6272
|
-
"superclass": {
|
|
6273
|
-
"name": "GenesisElement",
|
|
6274
|
-
"package": "@genesislcap/web-core"
|
|
6275
|
-
},
|
|
6276
|
-
"tagName": "parameter-builder",
|
|
6277
|
-
"customElement": true
|
|
6278
|
-
}
|
|
6279
|
-
],
|
|
6280
|
-
"exports": [
|
|
6281
|
-
{
|
|
6282
|
-
"kind": "js",
|
|
6283
|
-
"name": "ParameterBuilder",
|
|
6284
|
-
"declaration": {
|
|
6285
|
-
"name": "ParameterBuilder",
|
|
6286
|
-
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
|
|
6287
|
-
}
|
|
6288
|
-
},
|
|
6289
|
-
{
|
|
6290
|
-
"kind": "custom-element-definition",
|
|
6291
|
-
"name": "parameter-builder",
|
|
6292
|
-
"declaration": {
|
|
6293
|
-
"name": "ParameterBuilder",
|
|
6294
|
-
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
|
|
6295
|
-
}
|
|
6296
|
-
}
|
|
6297
|
-
]
|
|
6298
|
-
},
|
|
6299
6103
|
{
|
|
6300
6104
|
"kind": "javascript-module",
|
|
6301
6105
|
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-builder/template-condition-builder.template.ts",
|
|
@@ -6588,6 +6392,220 @@
|
|
|
6588
6392
|
}
|
|
6589
6393
|
]
|
|
6590
6394
|
},
|
|
6395
|
+
{
|
|
6396
|
+
"kind": "javascript-module",
|
|
6397
|
+
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts",
|
|
6398
|
+
"declarations": [
|
|
6399
|
+
{
|
|
6400
|
+
"kind": "variable",
|
|
6401
|
+
"name": "ParameterBuilderStyles",
|
|
6402
|
+
"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`"
|
|
6403
|
+
}
|
|
6404
|
+
],
|
|
6405
|
+
"exports": [
|
|
6406
|
+
{
|
|
6407
|
+
"kind": "js",
|
|
6408
|
+
"name": "ParameterBuilderStyles",
|
|
6409
|
+
"declaration": {
|
|
6410
|
+
"name": "ParameterBuilderStyles",
|
|
6411
|
+
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.styles.ts"
|
|
6412
|
+
}
|
|
6413
|
+
}
|
|
6414
|
+
]
|
|
6415
|
+
},
|
|
6416
|
+
{
|
|
6417
|
+
"kind": "javascript-module",
|
|
6418
|
+
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts",
|
|
6419
|
+
"declarations": [
|
|
6420
|
+
{
|
|
6421
|
+
"kind": "variable",
|
|
6422
|
+
"name": "ParameterBuilderTemplate",
|
|
6423
|
+
"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`"
|
|
6424
|
+
}
|
|
6425
|
+
],
|
|
6426
|
+
"exports": [
|
|
6427
|
+
{
|
|
6428
|
+
"kind": "js",
|
|
6429
|
+
"name": "ParameterBuilderTemplate",
|
|
6430
|
+
"declaration": {
|
|
6431
|
+
"name": "ParameterBuilderTemplate",
|
|
6432
|
+
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.template.ts"
|
|
6433
|
+
}
|
|
6434
|
+
}
|
|
6435
|
+
]
|
|
6436
|
+
},
|
|
6437
|
+
{
|
|
6438
|
+
"kind": "javascript-module",
|
|
6439
|
+
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts",
|
|
6440
|
+
"declarations": [
|
|
6441
|
+
{
|
|
6442
|
+
"kind": "class",
|
|
6443
|
+
"description": "Parameter builder for notification templates.",
|
|
6444
|
+
"name": "ParameterBuilder",
|
|
6445
|
+
"members": [
|
|
6446
|
+
{
|
|
6447
|
+
"kind": "field",
|
|
6448
|
+
"name": "parameter",
|
|
6449
|
+
"type": {
|
|
6450
|
+
"text": "ParameterBuilderEntity"
|
|
6451
|
+
}
|
|
6452
|
+
},
|
|
6453
|
+
{
|
|
6454
|
+
"kind": "field",
|
|
6455
|
+
"name": "name",
|
|
6456
|
+
"type": {
|
|
6457
|
+
"text": "string"
|
|
6458
|
+
}
|
|
6459
|
+
},
|
|
6460
|
+
{
|
|
6461
|
+
"kind": "field",
|
|
6462
|
+
"name": "label",
|
|
6463
|
+
"type": {
|
|
6464
|
+
"text": "string"
|
|
6465
|
+
}
|
|
6466
|
+
},
|
|
6467
|
+
{
|
|
6468
|
+
"kind": "field",
|
|
6469
|
+
"name": "type",
|
|
6470
|
+
"type": {
|
|
6471
|
+
"text": "string"
|
|
6472
|
+
}
|
|
6473
|
+
},
|
|
6474
|
+
{
|
|
6475
|
+
"kind": "field",
|
|
6476
|
+
"name": "sourceType",
|
|
6477
|
+
"type": {
|
|
6478
|
+
"text": "string"
|
|
6479
|
+
}
|
|
6480
|
+
},
|
|
6481
|
+
{
|
|
6482
|
+
"kind": "field",
|
|
6483
|
+
"name": "sourceSelected",
|
|
6484
|
+
"type": {
|
|
6485
|
+
"text": "string"
|
|
6486
|
+
}
|
|
6487
|
+
},
|
|
6488
|
+
{
|
|
6489
|
+
"kind": "field",
|
|
6490
|
+
"name": "sourceTyped",
|
|
6491
|
+
"type": {
|
|
6492
|
+
"text": "string"
|
|
6493
|
+
}
|
|
6494
|
+
},
|
|
6495
|
+
{
|
|
6496
|
+
"kind": "field",
|
|
6497
|
+
"name": "sourceTextField",
|
|
6498
|
+
"type": {
|
|
6499
|
+
"text": "TextField"
|
|
6500
|
+
}
|
|
6501
|
+
},
|
|
6502
|
+
{
|
|
6503
|
+
"kind": "field",
|
|
6504
|
+
"name": "sourceSelect",
|
|
6505
|
+
"type": {
|
|
6506
|
+
"text": "Select"
|
|
6507
|
+
}
|
|
6508
|
+
},
|
|
6509
|
+
{
|
|
6510
|
+
"kind": "field",
|
|
6511
|
+
"name": "reqRepItems",
|
|
6512
|
+
"type": {
|
|
6513
|
+
"text": "array"
|
|
6514
|
+
},
|
|
6515
|
+
"default": "['REQUEST_1', 'REQUEST_2', 'REQUEST_3']"
|
|
6516
|
+
},
|
|
6517
|
+
{
|
|
6518
|
+
"kind": "method",
|
|
6519
|
+
"name": "deleteParameter"
|
|
6520
|
+
},
|
|
6521
|
+
{
|
|
6522
|
+
"kind": "method",
|
|
6523
|
+
"name": "parameterChanged"
|
|
6524
|
+
},
|
|
6525
|
+
{
|
|
6526
|
+
"kind": "method",
|
|
6527
|
+
"name": "nameChanged"
|
|
6528
|
+
},
|
|
6529
|
+
{
|
|
6530
|
+
"kind": "method",
|
|
6531
|
+
"name": "labelChanged"
|
|
6532
|
+
},
|
|
6533
|
+
{
|
|
6534
|
+
"kind": "method",
|
|
6535
|
+
"name": "typeChanged"
|
|
6536
|
+
},
|
|
6537
|
+
{
|
|
6538
|
+
"kind": "method",
|
|
6539
|
+
"name": "sourceTypeChanged"
|
|
6540
|
+
},
|
|
6541
|
+
{
|
|
6542
|
+
"kind": "method",
|
|
6543
|
+
"name": "sourceSelectedChanged"
|
|
6544
|
+
},
|
|
6545
|
+
{
|
|
6546
|
+
"kind": "method",
|
|
6547
|
+
"name": "sourceTypedChanged"
|
|
6548
|
+
},
|
|
6549
|
+
{
|
|
6550
|
+
"kind": "method",
|
|
6551
|
+
"name": "genericChanged",
|
|
6552
|
+
"privacy": "private",
|
|
6553
|
+
"parameters": [
|
|
6554
|
+
{
|
|
6555
|
+
"name": "parameterAttribute"
|
|
6556
|
+
},
|
|
6557
|
+
{
|
|
6558
|
+
"name": "value"
|
|
6559
|
+
}
|
|
6560
|
+
]
|
|
6561
|
+
}
|
|
6562
|
+
],
|
|
6563
|
+
"events": [
|
|
6564
|
+
{
|
|
6565
|
+
"description": "Fired when a parameter is deleted. detail: `ParameterBuilderEntity`",
|
|
6566
|
+
"name": "delete"
|
|
6567
|
+
},
|
|
6568
|
+
{
|
|
6569
|
+
"description": "Fired when a parameter is edited. detail: `ParameterBuilderEntity`",
|
|
6570
|
+
"name": "edit"
|
|
6571
|
+
}
|
|
6572
|
+
],
|
|
6573
|
+
"attributes": [
|
|
6574
|
+
{
|
|
6575
|
+
"name": "parameter",
|
|
6576
|
+
"type": {
|
|
6577
|
+
"text": "ParameterBuilderEntity"
|
|
6578
|
+
},
|
|
6579
|
+
"fieldName": "parameter"
|
|
6580
|
+
}
|
|
6581
|
+
],
|
|
6582
|
+
"superclass": {
|
|
6583
|
+
"name": "GenesisElement",
|
|
6584
|
+
"package": "@genesislcap/web-core"
|
|
6585
|
+
},
|
|
6586
|
+
"tagName": "parameter-builder",
|
|
6587
|
+
"customElement": true
|
|
6588
|
+
}
|
|
6589
|
+
],
|
|
6590
|
+
"exports": [
|
|
6591
|
+
{
|
|
6592
|
+
"kind": "js",
|
|
6593
|
+
"name": "ParameterBuilder",
|
|
6594
|
+
"declaration": {
|
|
6595
|
+
"name": "ParameterBuilder",
|
|
6596
|
+
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
|
|
6597
|
+
}
|
|
6598
|
+
},
|
|
6599
|
+
{
|
|
6600
|
+
"kind": "custom-element-definition",
|
|
6601
|
+
"name": "parameter-builder",
|
|
6602
|
+
"declaration": {
|
|
6603
|
+
"name": "ParameterBuilder",
|
|
6604
|
+
"module": "src/components/foundation-notification-dashboard/components/templates/template-dialog/parameter-builder/parameter-builder.ts"
|
|
6605
|
+
}
|
|
6606
|
+
}
|
|
6607
|
+
]
|
|
6608
|
+
},
|
|
6591
6609
|
{
|
|
6592
6610
|
"kind": "javascript-module",
|
|
6593
6611
|
"path": "src/components/foundation-notification-dashboard/components/templates/template-dialog/template-condition-group/template-condition-group.template.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAiB,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAEL,aAAa,EAGb,UAAU,EACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAU9E,OAAO,EAAQ,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;GAKG;AACH,qBAKa,UAAW,SAAQ,cAAc;IAC/B,WAAW,EAAE,WAAW,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE5C,MAAM,EAAE,KAAK,CAAC;IACF,cAAc,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;IAEjF,OAAO,CAAC,MAAM,CAAgB;IAClB,IAAI,EAAE,MAAM,CAAM;IAClB,WAAW,EAAE,MAAM,CAAM;IACzB,QAAQ,EAAE,MAAM,CAAM;IACtB,KAAK,EAAE,MAAM,CAAM;IACnB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,UAAU,EAAE,CAAqB;IAC7C,MAAM,EAAE,MAAM,CAAM;IACpB,OAAO,EAAE,MAAM,CAAM;IACrB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAM;IACtC,cAAc,EAAE,OAAO,CAAC;IAIxB,oBAAoB,EAAE,MAAM,CAAM;IAElC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC9B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAM;IAErB,UAAU,CAAC,MAAM,EAAE,gBAAgB;IAmBhD,KAAK;YAsBS,UAAU;YAUV,QAAQ;IAuBtB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,oBAAoB;IAc5B,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,MAAM;IAaN,OAAO,CAAC,gBAAgB;
|
|
1
|
+
{"version":3,"file":"rule-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAiB,cAAc,EAAc,MAAM,uBAAuB,CAAC;AAClF,OAAO,EAEL,aAAa,EAGb,UAAU,EACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAU9E,OAAO,EAAQ,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE7E;;;;;GAKG;AACH,qBAKa,UAAW,SAAQ,cAAc;IAC/B,WAAW,EAAE,WAAW,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE5C,MAAM,EAAE,KAAK,CAAC;IACF,cAAc,EAAE,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;IAEjF,OAAO,CAAC,MAAM,CAAgB;IAClB,IAAI,EAAE,MAAM,CAAM;IAClB,WAAW,EAAE,MAAM,CAAM;IACzB,QAAQ,EAAE,MAAM,CAAM;IACtB,KAAK,EAAE,MAAM,CAAM;IACnB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,UAAU,EAAE,CAAqB;IAC7C,MAAM,EAAE,MAAM,CAAM;IACpB,OAAO,EAAE,MAAM,CAAM;IACrB,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAM;IACtC,cAAc,EAAE,OAAO,CAAC;IAIxB,oBAAoB,EAAE,MAAM,CAAM;IAElC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC9B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAM;IAErB,UAAU,CAAC,MAAM,EAAE,gBAAgB;IAmBhD,KAAK;YAsBS,UAAU;YAUV,QAAQ;IAuBtB,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,oBAAoB;IAc5B,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,MAAM;IAaN,OAAO,CAAC,gBAAgB;IAkCxB,gBAAgB,CAAC,QAAQ,KAAA;IASnB,eAAe;IAOrB,YAAY;IAKZ,QAAQ;IAKR,aAAa,CAAC,eAAe,EAAE,aAAa;IAI5C,eAAe,CAAC,gBAAgB,EAAE,aAAa;IAUxC,sBAAsB;CAK9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAiB,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAEL,aAAa,EAGb,UAAU,EACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAU3E,OAAO,EAAE,sBAAsB,EAAY,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE/F;;;;;GAKG;AACH,qBAKa,cAAe,SAAQ,cAAc;IAC/B,eAAe,EAAE,eAAe,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE5C,MAAM,EAAE,KAAK,CAAC;IACF,kBAAkB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CACrF;IAEP,OAAO,CAAC,UAAU,CAAgB;IACtB,IAAI,EAAE,MAAM,CAAQ;IACpB,WAAW,EAAE,MAAM,CAAQ;IAC3B,MAAM,MAAQ;IACd,OAAO,MAAQ;IACf,QAAQ,EAAE,MAAM,CAAM;IACtB,KAAK,EAAE,MAAM,CAAM;IACnB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,UAAU,EAAE,CAAqB;IAE7C,UAAU,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAM;IAC/C,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAM;IAItC,oBAAoB,EAAE,MAAM,CAAM;IAElC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC9B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAEvC,OAAO,CAAC,cAAc,CAAkE;IAE3E,UAAU,CAAC,MAAM,EAAE,GAAG;IAoBnC,KAAK;YAuBS,cAAc;YAUd,YAAY;IAwB1B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,oBAAoB;IAc5B,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,MAAM;IAwBN,OAAO,CAAC,oBAAoB;
|
|
1
|
+
{"version":3,"file":"template-dialog.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/foundation-notification-dashboard/components/templates/template-dialog/template-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAiB,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAEL,aAAa,EAGb,UAAU,EACX,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAU3E,OAAO,EAAE,sBAAsB,EAAY,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE/F;;;;;GAKG;AACH,qBAKa,cAAe,SAAQ,cAAc;IAC/B,eAAe,EAAE,eAAe,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,aAAa,EAAE,aAAa,CAAC;IAE5C,MAAM,EAAE,KAAK,CAAC;IACF,kBAAkB,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CACrF;IAEP,OAAO,CAAC,UAAU,CAAgB;IACtB,IAAI,EAAE,MAAM,CAAQ;IACpB,WAAW,EAAE,MAAM,CAAQ;IAC3B,MAAM,MAAQ;IACd,OAAO,MAAQ;IACf,QAAQ,EAAE,MAAM,CAAM;IACtB,KAAK,EAAE,MAAM,CAAM;IACnB,QAAQ,EAAE,MAAM,CAAM;IACtB,UAAU,EAAE,UAAU,EAAE,CAAqB;IAE7C,UAAU,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAM;IAC/C,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC,CAAM;IAItC,oBAAoB,EAAE,MAAM,CAAM;IAElC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAC9B,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAM;IAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAM;IAEvC,OAAO,CAAC,cAAc,CAAkE;IAE3E,UAAU,CAAC,MAAM,EAAE,GAAG;IAoBnC,KAAK;YAuBS,cAAc;YAUd,YAAY;IAwB1B,OAAO,CAAC,wBAAwB;IAQhC,OAAO,CAAC,oBAAoB;IAc5B,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,MAAM;IAwBN,OAAO,CAAC,oBAAoB;IAsC5B,gBAAgB,CAAC,QAAQ,KAAA;IASnB,eAAe;IAOrB,YAAY;IAKZ,QAAQ;IAKR,aAAa,CAAC,eAAe,EAAE,aAAa;IAI5C,eAAe,CAAC,gBAAgB,EAAE,aAAa;IAW/C,YAAY;IAIZ,aAAa,CAAC,eAAe,EAAE,sBAAsB;IAIrD,eAAe,CAAC,gBAAgB,EAAE,sBAAsB;IAYxD,IACW,sBAAsB,IAAI,OAAO,CAE3C;CACF"}
|
package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts
CHANGED
|
@@ -32,6 +32,7 @@ export declare class DynamicRuleUtils {
|
|
|
32
32
|
static hasMultiValueCondition(conditions: ConditionNode[]): boolean;
|
|
33
33
|
static hasOrJoin(conditions: ConditionNode[]): boolean;
|
|
34
34
|
static hasGroup(conditions: ConditionNode[]): boolean;
|
|
35
|
+
static hasUnsupportedOperator(conditions: ConditionNode[]): boolean;
|
|
35
36
|
static flattenConditions(conditions: ConditionNode[]): ConditionBuilderEntity[];
|
|
36
37
|
static resolveLeftValues(conditions: ConditionNode[], fields: any[]): ConditionNode[];
|
|
37
38
|
static createEmptyGroup: () => ConditionGroupEntity;
|
package/dist/dts/components/foundation-notification-dashboard/notification-dashboard.utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification-dashboard.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/foundation-notification-dashboard/notification-dashboard.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EASd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAEtG,qBAAa,aAAa;IAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;IAChC,MAAM,CAAC,UAAU,QAAO,MAAM,CAAyB;CACxD;AAED,eAAO,MAAM,OAAO,GAAI,UAAK,YAC8C,CAAC;AAkH5E,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,oBAAoB,QAAO,sBAAsB,CAOrD;IAEH,MAAM,CAAC,gBAAgB,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM;;;;;;;;;MASpD;IAQH,MAAM,CAAC,oBAAoB,GACzB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,SAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAO;;;;;;MAOpC;IAEH,MAAM,CAAC,kBAAkB,GAAI,aAAa,GAAG,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,CACS;IAIhF,MAAM,CAAC,iBAAiB,GAAI,aAAa,GAAG,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,CAGpE;IAKF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,UAAU,CAAC,KAAA,GAAG,GAAG;IAkBtE,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAUnE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAWtD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"notification-dashboard.utils.d.ts","sourceRoot":"","sources":["../../../../src/components/foundation-notification-dashboard/notification-dashboard.utils.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EASd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAEtG,qBAAa,aAAa;IAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAO;IAChC,MAAM,CAAC,UAAU,QAAO,MAAM,CAAyB;CACxD;AAED,eAAO,MAAM,OAAO,GAAI,UAAK,YAC8C,CAAC;AAkH5E,qBAAa,gBAAgB;IAC3B,MAAM,CAAC,oBAAoB,QAAO,sBAAsB,CAOrD;IAEH,MAAM,CAAC,gBAAgB,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM;;;;;;;;;MASpD;IAQH,MAAM,CAAC,oBAAoB,GACzB,OAAO,MAAM,EACb,MAAM,MAAM,EACZ,SAAQ;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAO;;;;;;MAOpC;IAEH,MAAM,CAAC,kBAAkB,GAAI,aAAa,GAAG,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,CACS;IAIhF,MAAM,CAAC,iBAAiB,GAAI,aAAa,GAAG,EAAE,EAAE,OAAO,MAAM,KAAG,MAAM,CAGpE;IAKF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,UAAU,CAAC,KAAA,GAAG,GAAG;IAkBtE,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAUnE,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAWtD,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAUrD,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,OAAO;IAYnE,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,sBAAsB,EAAE;IAa/E,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE;IAcrF,MAAM,CAAC,gBAAgB,QAAO,oBAAoB,CAI/C;IAWH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM;IAiB9D,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,EAAE,GAAG,IAAI;CAazE;AAqUD,qBAAa,aAAa;IACxB,MAAM,CAAC,oBAAoB,QAAO,sBAAsB,CAOrD;IAEH,MAAM,CAAC,aAAa,CAAC,UAAU,KAAA;;;;;;;;IAe/B,OAAO,CAAC,MAAM,CAAC,eAAe;IAe9B,MAAM,CAAC,aAAa,CAAC,UAAU,KAAA,EAAE,UAAU,CAAC,KAAA;IAgB5C,MAAM,CAAC,sBAAsB,CAAC,UAAU,KAAA;CAmBzC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,eAAe;IAe9B,MAAM,CAAC,aAAa,CAAC,UAAU,KAAA;CAYhC;AAID,wBAAgB,qBAAqB,CAAC,KAAK,KAAA,QAa1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notify.types.d.ts","sourceRoot":"","sources":["../../src/notify.types.ts"],"names":[],"mappings":"AACA,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,gBAAgB;;;
|
|
1
|
+
{"version":3,"file":"notify.types.d.ts","sourceRoot":"","sources":["../../src/notify.types.ts"],"names":[],"mappings":"AACA,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IAKvB,WAAW,gBAAgB;IAC3B,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,gBAAgB;;;GAyC5B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;GAyBhC,CAAC;AAEF,eAAO,MAAM,iCAAiC,mBAK7C,CAAC;AAEF,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;CAC1B;AAED,oBAAY,SAAS;IAEnB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,aAAa,kBAAkB;IAC/B,OAAO,YAAY;CACpB;AAED,oBAAY,QAAQ;IAClB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,oBAAY,cAAc;IACxB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,WAAW,gBAAgB;CAC5B;AAED,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,eAAe,oBAAoB;IACnC,KAAK,UAAU;CAChB;AAED,oBAAY,UAAU;IACpB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,eAAO,MAAM,iBAAiB,cAAsB,CAAC;AAErD,oBAAY,UAAU;IACpB,KAAK,KAAK;IACV,IAAI,SAAS;CACd;AAID,oBAAY,YAAY;IACtB,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,GAAG,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IAGpB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAOF,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,sBAAsB,GAAG,oBAAoB,CAAC"}
|
package/dist/dts/react.d.ts
CHANGED
|
@@ -247,17 +247,6 @@ export declare const RuleConditionGroup: React.ForwardRefExoticComponent<
|
|
|
247
247
|
>;
|
|
248
248
|
export type RuleConditionGroupRef = RuleConditionGroupWC;
|
|
249
249
|
|
|
250
|
-
export declare const ParameterBuilder: React.ForwardRefExoticComponent<
|
|
251
|
-
React.PropsWithChildren<
|
|
252
|
-
Omit<PublicOf<ParameterBuilderWC>, 'children' | 'style'> &
|
|
253
|
-
HTMLWCProps & {
|
|
254
|
-
onDelete?: (event: CustomEvent<ParameterBuilderEntity>) => void;
|
|
255
|
-
onEdit?: (event: CustomEvent<ParameterBuilderEntity>) => void;
|
|
256
|
-
}
|
|
257
|
-
> & React.RefAttributes<ParameterBuilderWC>
|
|
258
|
-
>;
|
|
259
|
-
export type ParameterBuilderRef = ParameterBuilderWC;
|
|
260
|
-
|
|
261
250
|
export declare const TemplateConditionBuilder: React.ForwardRefExoticComponent<
|
|
262
251
|
React.PropsWithChildren<
|
|
263
252
|
Omit<PublicOf<TemplateConditionBuilderWC>, 'children' | 'style'> &
|
|
@@ -269,6 +258,17 @@ export declare const TemplateConditionBuilder: React.ForwardRefExoticComponent<
|
|
|
269
258
|
>;
|
|
270
259
|
export type TemplateConditionBuilderRef = TemplateConditionBuilderWC;
|
|
271
260
|
|
|
261
|
+
export declare const ParameterBuilder: React.ForwardRefExoticComponent<
|
|
262
|
+
React.PropsWithChildren<
|
|
263
|
+
Omit<PublicOf<ParameterBuilderWC>, 'children' | 'style'> &
|
|
264
|
+
HTMLWCProps & {
|
|
265
|
+
onDelete?: (event: CustomEvent<ParameterBuilderEntity>) => void;
|
|
266
|
+
onEdit?: (event: CustomEvent<ParameterBuilderEntity>) => void;
|
|
267
|
+
}
|
|
268
|
+
> & React.RefAttributes<ParameterBuilderWC>
|
|
269
|
+
>;
|
|
270
|
+
export type ParameterBuilderRef = ParameterBuilderWC;
|
|
271
|
+
|
|
272
272
|
export declare const TemplateConditionGroup: React.ForwardRefExoticComponent<
|
|
273
273
|
React.PropsWithChildren<
|
|
274
274
|
Omit<PublicOf<TemplateConditionGroupWC>, 'children' | 'style'> &
|
|
@@ -149,7 +149,8 @@ let RuleDialog = class RuleDialog extends GenesisElement {
|
|
|
149
149
|
// structured CONDITIONS. The server branches on which one is non-null.
|
|
150
150
|
const useRaw = DynamicRuleUtils.hasMultiValueCondition(this.conditions) ||
|
|
151
151
|
DynamicRuleUtils.hasOrJoin(this.conditions) ||
|
|
152
|
-
DynamicRuleUtils.hasGroup(this.conditions)
|
|
152
|
+
DynamicRuleUtils.hasGroup(this.conditions) ||
|
|
153
|
+
DynamicRuleUtils.hasUnsupportedOperator(this.conditions);
|
|
153
154
|
return Object.assign(Object.assign({}, (this.ruleDialogMode === RuleDialogMode.EDIT && { DYNAMIC_RULE_ID: this.ruleId })), { RULE_NAME: this.name, RULE_DESCRIPTION: this.description, RULE_TABLE: this.resource, TABLE_OPERATIONS: this.updateType, RULE_EXPRESSION: useRaw
|
|
154
155
|
? null
|
|
155
156
|
: {
|
|
@@ -166,7 +166,8 @@ let TemplateDialog = class TemplateDialog extends GenesisElement {
|
|
|
166
166
|
// excluded automatically.
|
|
167
167
|
const useRaw = DynamicRuleUtils.hasMultiValueCondition(this.conditions) ||
|
|
168
168
|
DynamicRuleUtils.hasOrJoin(this.conditions) ||
|
|
169
|
-
DynamicRuleUtils.hasGroup(this.conditions)
|
|
169
|
+
DynamicRuleUtils.hasGroup(this.conditions) ||
|
|
170
|
+
DynamicRuleUtils.hasUnsupportedOperator(this.conditions);
|
|
170
171
|
return Object.assign(Object.assign({}, (this.templateDialogMode === TemplateDialogMode.EDIT && {
|
|
171
172
|
DYNAMIC_RULE_ID: this.templateId,
|
|
172
173
|
})), { RULE_NAME: this.name, RULE_DESCRIPTION: this.description, RULE_TABLE: this.resource, TABLE_OPERATIONS: this.updateType, RULE_EXPRESSION: useRaw
|
package/dist/esm/components/foundation-notification-dashboard/notification-dashboard.utils.js
CHANGED
|
@@ -156,6 +156,18 @@ export class DynamicRuleUtils {
|
|
|
156
156
|
static hasGroup(conditions) {
|
|
157
157
|
return conditions.some(isGroupNode);
|
|
158
158
|
}
|
|
159
|
+
// STARTS_WITH/ENDS_WITH compile to a Groovy method-call clause
|
|
160
|
+
// (`FIELD.startsWith("value")`), which the structured CONDITIONS format
|
|
161
|
+
// cannot express - genesis-criteria's server-side Operation enum only has
|
|
162
|
+
// ==, !=, >, < (see EvaluatorExpressionParser). Any condition using one of
|
|
163
|
+
// these always forces RAW_RULE_EXPRESSION, same as a group or multi-value
|
|
164
|
+
// condition.
|
|
165
|
+
static hasUnsupportedOperator(conditions) {
|
|
166
|
+
return conditions.some((node) => isGroupNode(node)
|
|
167
|
+
? DynamicRuleUtils.hasUnsupportedOperator(node.CHILDREN)
|
|
168
|
+
: node.LOGICAL_OPERATOR === LogicalOperator.STARTS_WITH ||
|
|
169
|
+
node.LOGICAL_OPERATOR === LogicalOperator.ENDS_WITH);
|
|
170
|
+
}
|
|
159
171
|
// Flattens a condition/group tree into just its leaf conditions, at any
|
|
160
172
|
// depth - for callers that only care about "is this parameter used
|
|
161
173
|
// anywhere" and don't need to know the group structure.
|
|
@@ -329,6 +341,17 @@ const resolveTemplateTextExpression = (expr) => {
|
|
|
329
341
|
return (_b = expr.VALUE) !== null && _b !== void 0 ? _b : '';
|
|
330
342
|
}
|
|
331
343
|
};
|
|
344
|
+
// Escapes a value for safe interpolation into a double-quoted Groovy string
|
|
345
|
+
// literal, guarding both injection routes double-quoted Groovy strings allow:
|
|
346
|
+
// 1. Breaking out of the literal, e.g. RIGHT_VALUE = `x") || (1==1` - closed
|
|
347
|
+
// off by escaping `"`.
|
|
348
|
+
// 2. GString interpolation, e.g. RIGHT_VALUE = `${1==1}` or `$foo` - Groovy
|
|
349
|
+
// evaluates `${...}`/`$identifier` as live code INSIDE a double-quoted
|
|
350
|
+
// string even without breaking out of it, so `"` alone is not enough;
|
|
351
|
+
// escaping `$` as `\$` forces it to stay a literal dollar sign.
|
|
352
|
+
// Order matters: backslash must be escaped first, before the other two
|
|
353
|
+
// replacements introduce new backslashes of their own.
|
|
354
|
+
const escapeGroovyStringLiteral = (value) => value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\$/g, '\\$');
|
|
332
355
|
const buildConditionClause = (condition) => {
|
|
333
356
|
var _b;
|
|
334
357
|
const name = condition.LEFT_VALUE.FIELD_NAME;
|
|
@@ -340,6 +363,21 @@ const buildConditionClause = (condition) => {
|
|
|
340
363
|
if (logicalOperator === LogicalOperator.BLANK || logicalOperator === LogicalOperator.NOT_BLANK) {
|
|
341
364
|
return `(${name} ${logicalOperator === LogicalOperator.BLANK ? '==' : '!='} "")`;
|
|
342
365
|
}
|
|
366
|
+
if (logicalOperator === LogicalOperator.STARTS_WITH ||
|
|
367
|
+
logicalOperator === LogicalOperator.ENDS_WITH) {
|
|
368
|
+
// No structured-CONDITIONS representation - compiled as a Groovy method
|
|
369
|
+
// call, evaluated at runtime via the platform's Groovy-backed
|
|
370
|
+
// EvaluatorPool (confirmed: RAW_RULE_EXPRESSION is stored verbatim and
|
|
371
|
+
// never re-validated by the structured-expression parser at load/eval
|
|
372
|
+
// time, only at create/edit-time in the dashboard itself). Unlike the
|
|
373
|
+
// ==/>/< path below, the argument is always a String literal regardless
|
|
374
|
+
// of the field's own type - String.startsWith/endsWith takes a
|
|
375
|
+
// CharSequence, so UNQUOTED_FIELD_TYPES (which exists for bare numeric/
|
|
376
|
+
// boolean comparisons) doesn't apply here.
|
|
377
|
+
const method = logicalOperator === LogicalOperator.STARTS_WITH ? 'startsWith' : 'endsWith';
|
|
378
|
+
const value = escapeGroovyStringLiteral(String(condition.RIGHT_VALUE));
|
|
379
|
+
return `(${name}.${method}("${value}"))`;
|
|
380
|
+
}
|
|
343
381
|
const op = (_b = OPERATOR_SYMBOLS[logicalOperator]) !== null && _b !== void 0 ? _b : '==';
|
|
344
382
|
// Rules support a "FIELD" RIGHT_CRITERIA (compare to another field) via a
|
|
345
383
|
// separate RightCriteria enum (rule-condition-builder.types.ts) that this
|
|
@@ -384,6 +422,22 @@ const parseAtom = (atom) => {
|
|
|
384
422
|
value: '',
|
|
385
423
|
};
|
|
386
424
|
}
|
|
425
|
+
// FIELD.startsWith("value") / FIELD.endsWith("value") - the method-call
|
|
426
|
+
// clause buildConditionClause emits for STARTS_WITH/ENDS_WITH. Reverses
|
|
427
|
+
// escapeGroovyStringLiteral so the value round-trips through edit unchanged.
|
|
428
|
+
const methodMatch = inner.match(/^([A-Za-z0-9_]+)\.(startsWith|endsWith)\("(.*)"\)$/);
|
|
429
|
+
if (methodMatch) {
|
|
430
|
+
return {
|
|
431
|
+
name: methodMatch[1].trim(),
|
|
432
|
+
operator: methodMatch[2] === 'startsWith' ? LogicalOperator.STARTS_WITH : LogicalOperator.ENDS_WITH,
|
|
433
|
+
// Single combined-pattern pass (not sequential independent replaces) so
|
|
434
|
+
// an escaped backslash immediately followed by an escaped quote/dollar
|
|
435
|
+
// can't be misinterpreted - each `\` in the raw text is always followed
|
|
436
|
+
// by exactly one of \, ", or $ (escapeGroovyStringLiteral's output),
|
|
437
|
+
// and this consumes both characters together in one match.
|
|
438
|
+
value: methodMatch[3].replace(/\\([\\"$])/g, '$1'),
|
|
439
|
+
};
|
|
440
|
+
}
|
|
387
441
|
const symbol = ['==', '!=', '>', '<'].find((s) => inner.includes(` ${s} `));
|
|
388
442
|
if (!symbol)
|
|
389
443
|
return null;
|
package/dist/esm/notify.types.js
CHANGED
|
@@ -5,6 +5,12 @@ export var LogicalOperator;
|
|
|
5
5
|
LogicalOperator["NOT_EQUALS"] = "NOT_EQUALS";
|
|
6
6
|
LogicalOperator["GREATER_THAN"] = "GREATER_THAN";
|
|
7
7
|
LogicalOperator["LESS_THAN"] = "LESS_THAN";
|
|
8
|
+
// No structured-CONDITIONS representation server-side (genesis-criteria's
|
|
9
|
+
// Operation enum has no string-method operator) - a condition using either
|
|
10
|
+
// of these always compiles to RAW_RULE_EXPRESSION. See
|
|
11
|
+
// DynamicRuleUtils.hasUnsupportedOperator.
|
|
12
|
+
LogicalOperator["STARTS_WITH"] = "STARTS_WITH";
|
|
13
|
+
LogicalOperator["ENDS_WITH"] = "ENDS_WITH";
|
|
8
14
|
LogicalOperator["NULL"] = "NULL";
|
|
9
15
|
LogicalOperator["NOT_NULL"] = "NOT_NULL";
|
|
10
16
|
LogicalOperator["BLANK"] = "BLANK";
|
|
@@ -27,6 +33,14 @@ export const LogicalOperators = [
|
|
|
27
33
|
label: 'Less Than',
|
|
28
34
|
operator: 'LESS_THAN',
|
|
29
35
|
},
|
|
36
|
+
{
|
|
37
|
+
label: 'Starts With',
|
|
38
|
+
operator: 'STARTS_WITH',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'Ends With',
|
|
42
|
+
operator: 'ENDS_WITH',
|
|
43
|
+
},
|
|
30
44
|
{
|
|
31
45
|
label: 'Null',
|
|
32
46
|
operator: 'NULL',
|
package/dist/react.cjs
CHANGED
|
@@ -226,7 +226,7 @@ const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(props, r
|
|
|
226
226
|
return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
227
227
|
});
|
|
228
228
|
|
|
229
|
-
const
|
|
229
|
+
const TemplateConditionBuilder = React.forwardRef(function TemplateConditionBuilder(props, ref) {
|
|
230
230
|
const { onDelete, onEdit, children, ...rest } = props;
|
|
231
231
|
const _innerRef = React.useRef(null);
|
|
232
232
|
const _onDeleteRef = React.useRef(onDelete);
|
|
@@ -245,10 +245,10 @@ const ParameterBuilder = React.forwardRef(function ParameterBuilder(props, ref)
|
|
|
245
245
|
el.removeEventListener('edit', _onEditFn);
|
|
246
246
|
};
|
|
247
247
|
}, []);
|
|
248
|
-
return React.createElement(customElements.getName(
|
|
248
|
+
return React.createElement(customElements.getName(TemplateConditionBuilderWC) ?? 'template-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
249
249
|
});
|
|
250
250
|
|
|
251
|
-
const
|
|
251
|
+
const ParameterBuilder = React.forwardRef(function ParameterBuilder(props, ref) {
|
|
252
252
|
const { onDelete, onEdit, children, ...rest } = props;
|
|
253
253
|
const _innerRef = React.useRef(null);
|
|
254
254
|
const _onDeleteRef = React.useRef(onDelete);
|
|
@@ -267,7 +267,7 @@ const TemplateConditionBuilder = React.forwardRef(function TemplateConditionBuil
|
|
|
267
267
|
el.removeEventListener('edit', _onEditFn);
|
|
268
268
|
};
|
|
269
269
|
}, []);
|
|
270
|
-
return React.createElement(customElements.getName(
|
|
270
|
+
return React.createElement(customElements.getName(ParameterBuilderWC) ?? 'parameter-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
271
271
|
});
|
|
272
272
|
|
|
273
273
|
const TemplateConditionGroup = React.forwardRef(function TemplateConditionGroup(props, ref) {
|
|
@@ -313,7 +313,7 @@ module.exports = {
|
|
|
313
313
|
TemplateDialog,
|
|
314
314
|
RuleConditionBuilder,
|
|
315
315
|
RuleConditionGroup,
|
|
316
|
-
ParameterBuilder,
|
|
317
316
|
TemplateConditionBuilder,
|
|
317
|
+
ParameterBuilder,
|
|
318
318
|
TemplateConditionGroup,
|
|
319
319
|
};
|
package/dist/react.mjs
CHANGED
|
@@ -224,7 +224,7 @@ export const RuleConditionGroup = React.forwardRef(function RuleConditionGroup(p
|
|
|
224
224
|
return React.createElement(customElements.getName(RuleConditionGroupWC) ?? 'rule-condition-group', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
225
225
|
});
|
|
226
226
|
|
|
227
|
-
export const
|
|
227
|
+
export const TemplateConditionBuilder = React.forwardRef(function TemplateConditionBuilder(props, ref) {
|
|
228
228
|
const { onDelete, onEdit, children, ...rest } = props;
|
|
229
229
|
const _innerRef = React.useRef(null);
|
|
230
230
|
const _onDeleteRef = React.useRef(onDelete);
|
|
@@ -243,10 +243,10 @@ export const ParameterBuilder = React.forwardRef(function ParameterBuilder(props
|
|
|
243
243
|
el.removeEventListener('edit', _onEditFn);
|
|
244
244
|
};
|
|
245
245
|
}, []);
|
|
246
|
-
return React.createElement(customElements.getName(
|
|
246
|
+
return React.createElement(customElements.getName(TemplateConditionBuilderWC) ?? 'template-condition-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
247
247
|
});
|
|
248
248
|
|
|
249
|
-
export const
|
|
249
|
+
export const ParameterBuilder = React.forwardRef(function ParameterBuilder(props, ref) {
|
|
250
250
|
const { onDelete, onEdit, children, ...rest } = props;
|
|
251
251
|
const _innerRef = React.useRef(null);
|
|
252
252
|
const _onDeleteRef = React.useRef(onDelete);
|
|
@@ -265,7 +265,7 @@ export const TemplateConditionBuilder = React.forwardRef(function TemplateCondit
|
|
|
265
265
|
el.removeEventListener('edit', _onEditFn);
|
|
266
266
|
};
|
|
267
267
|
}, []);
|
|
268
|
-
return React.createElement(customElements.getName(
|
|
268
|
+
return React.createElement(customElements.getName(ParameterBuilderWC) ?? 'parameter-builder', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
|
|
269
269
|
});
|
|
270
270
|
|
|
271
271
|
export const TemplateConditionGroup = React.forwardRef(function TemplateConditionGroup(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": "14.
|
|
4
|
+
"version": "14.486.0",
|
|
5
5
|
"license": "SEE LICENSE IN license.txt",
|
|
6
6
|
"workspaces": [
|
|
7
7
|
"client"
|
|
@@ -83,30 +83,30 @@
|
|
|
83
83
|
"@commitlint/format": "^19.0.3",
|
|
84
84
|
"@genesiscommunitysuccess/cep-fast-plugin": "5.0.3",
|
|
85
85
|
"@genesiscommunitysuccess/custom-elements-lsp": "5.0.3",
|
|
86
|
-
"@genesislcap/design-system-configurator": "14.
|
|
87
|
-
"@genesislcap/eslint-config": "14.
|
|
88
|
-
"@genesislcap/eslint-stylelint-builder": "14.
|
|
89
|
-
"@genesislcap/foundation-testing": "14.
|
|
90
|
-
"@genesislcap/genx": "14.
|
|
91
|
-
"@genesislcap/prettier-config": "14.
|
|
92
|
-
"@genesislcap/stylelint-config": "14.
|
|
93
|
-
"@genesislcap/vite-builder": "14.
|
|
94
|
-
"@genesislcap/webpack-builder": "14.
|
|
86
|
+
"@genesislcap/design-system-configurator": "14.486.0",
|
|
87
|
+
"@genesislcap/eslint-config": "14.486.0",
|
|
88
|
+
"@genesislcap/eslint-stylelint-builder": "14.486.0",
|
|
89
|
+
"@genesislcap/foundation-testing": "14.486.0",
|
|
90
|
+
"@genesislcap/genx": "14.486.0",
|
|
91
|
+
"@genesislcap/prettier-config": "14.486.0",
|
|
92
|
+
"@genesislcap/stylelint-config": "14.486.0",
|
|
93
|
+
"@genesislcap/vite-builder": "14.486.0",
|
|
94
|
+
"@genesislcap/webpack-builder": "14.486.0",
|
|
95
95
|
"dayjs": "^1.11.7"
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {
|
|
98
|
-
"@genesislcap/foundation-comms": "14.
|
|
99
|
-
"@genesislcap/foundation-criteria": "14.
|
|
100
|
-
"@genesislcap/foundation-entity-management": "14.
|
|
101
|
-
"@genesislcap/foundation-forms": "14.
|
|
102
|
-
"@genesislcap/foundation-layout": "14.
|
|
103
|
-
"@genesislcap/foundation-logger": "14.
|
|
104
|
-
"@genesislcap/foundation-notifications": "14.
|
|
105
|
-
"@genesislcap/foundation-ui": "14.
|
|
106
|
-
"@genesislcap/foundation-utils": "14.
|
|
107
|
-
"@genesislcap/rapid-design-system": "14.
|
|
108
|
-
"@genesislcap/rapid-grid-pro": "14.
|
|
109
|
-
"@genesislcap/web-core": "14.
|
|
98
|
+
"@genesislcap/foundation-comms": "14.486.0",
|
|
99
|
+
"@genesislcap/foundation-criteria": "14.486.0",
|
|
100
|
+
"@genesislcap/foundation-entity-management": "14.486.0",
|
|
101
|
+
"@genesislcap/foundation-forms": "14.486.0",
|
|
102
|
+
"@genesislcap/foundation-layout": "14.486.0",
|
|
103
|
+
"@genesislcap/foundation-logger": "14.486.0",
|
|
104
|
+
"@genesislcap/foundation-notifications": "14.486.0",
|
|
105
|
+
"@genesislcap/foundation-ui": "14.486.0",
|
|
106
|
+
"@genesislcap/foundation-utils": "14.486.0",
|
|
107
|
+
"@genesislcap/rapid-design-system": "14.486.0",
|
|
108
|
+
"@genesislcap/rapid-grid-pro": "14.486.0",
|
|
109
|
+
"@genesislcap/web-core": "14.486.0",
|
|
110
110
|
"lodash.debounce": "^4.0.8",
|
|
111
111
|
"rxjs": "^7.5.4"
|
|
112
112
|
},
|
|
@@ -114,5 +114,5 @@
|
|
|
114
114
|
"access": "public"
|
|
115
115
|
},
|
|
116
116
|
"customElements": "dist/custom-elements.json",
|
|
117
|
-
"gitHead": "
|
|
117
|
+
"gitHead": "5de11f8989291fe8aaf19a7048dd6be68c0be9c8"
|
|
118
118
|
}
|
package/src/components/foundation-notification-dashboard/components/rules/rule-dialog/rule-dialog.ts
CHANGED
|
@@ -182,7 +182,8 @@ export class RuleDialog extends GenesisElement {
|
|
|
182
182
|
const useRaw =
|
|
183
183
|
DynamicRuleUtils.hasMultiValueCondition(this.conditions) ||
|
|
184
184
|
DynamicRuleUtils.hasOrJoin(this.conditions) ||
|
|
185
|
-
DynamicRuleUtils.hasGroup(this.conditions)
|
|
185
|
+
DynamicRuleUtils.hasGroup(this.conditions) ||
|
|
186
|
+
DynamicRuleUtils.hasUnsupportedOperator(this.conditions);
|
|
186
187
|
return {
|
|
187
188
|
...(this.ruleDialogMode === RuleDialogMode.EDIT && { DYNAMIC_RULE_ID: this.ruleId }),
|
|
188
189
|
RULE_NAME: this.name,
|
|
@@ -201,7 +201,8 @@ export class TemplateDialog extends GenesisElement {
|
|
|
201
201
|
const useRaw =
|
|
202
202
|
DynamicRuleUtils.hasMultiValueCondition(this.conditions) ||
|
|
203
203
|
DynamicRuleUtils.hasOrJoin(this.conditions) ||
|
|
204
|
-
DynamicRuleUtils.hasGroup(this.conditions)
|
|
204
|
+
DynamicRuleUtils.hasGroup(this.conditions) ||
|
|
205
|
+
DynamicRuleUtils.hasUnsupportedOperator(this.conditions);
|
|
205
206
|
return {
|
|
206
207
|
...(this.templateDialogMode === TemplateDialogMode.EDIT && {
|
|
207
208
|
DYNAMIC_RULE_ID: this.templateId,
|
|
@@ -232,6 +232,21 @@ export class DynamicRuleUtils {
|
|
|
232
232
|
return conditions.some(isGroupNode);
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
// STARTS_WITH/ENDS_WITH compile to a Groovy method-call clause
|
|
236
|
+
// (`FIELD.startsWith("value")`), which the structured CONDITIONS format
|
|
237
|
+
// cannot express - genesis-criteria's server-side Operation enum only has
|
|
238
|
+
// ==, !=, >, < (see EvaluatorExpressionParser). Any condition using one of
|
|
239
|
+
// these always forces RAW_RULE_EXPRESSION, same as a group or multi-value
|
|
240
|
+
// condition.
|
|
241
|
+
static hasUnsupportedOperator(conditions: ConditionNode[]): boolean {
|
|
242
|
+
return conditions.some((node) =>
|
|
243
|
+
isGroupNode(node)
|
|
244
|
+
? DynamicRuleUtils.hasUnsupportedOperator(node.CHILDREN)
|
|
245
|
+
: node.LOGICAL_OPERATOR === LogicalOperator.STARTS_WITH ||
|
|
246
|
+
node.LOGICAL_OPERATOR === LogicalOperator.ENDS_WITH,
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
|
|
235
250
|
// Flattens a condition/group tree into just its leaf conditions, at any
|
|
236
251
|
// depth - for callers that only care about "is this parameter used
|
|
237
252
|
// anywhere" and don't need to know the group structure.
|
|
@@ -383,6 +398,19 @@ const resolveTemplateTextExpression = (expr: any): string => {
|
|
|
383
398
|
}
|
|
384
399
|
};
|
|
385
400
|
|
|
401
|
+
// Escapes a value for safe interpolation into a double-quoted Groovy string
|
|
402
|
+
// literal, guarding both injection routes double-quoted Groovy strings allow:
|
|
403
|
+
// 1. Breaking out of the literal, e.g. RIGHT_VALUE = `x") || (1==1` - closed
|
|
404
|
+
// off by escaping `"`.
|
|
405
|
+
// 2. GString interpolation, e.g. RIGHT_VALUE = `${1==1}` or `$foo` - Groovy
|
|
406
|
+
// evaluates `${...}`/`$identifier` as live code INSIDE a double-quoted
|
|
407
|
+
// string even without breaking out of it, so `"` alone is not enough;
|
|
408
|
+
// escaping `$` as `\$` forces it to stay a literal dollar sign.
|
|
409
|
+
// Order matters: backslash must be escaped first, before the other two
|
|
410
|
+
// replacements introduce new backslashes of their own.
|
|
411
|
+
const escapeGroovyStringLiteral = (value: string): string =>
|
|
412
|
+
value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\$/g, '\\$');
|
|
413
|
+
|
|
386
414
|
const buildConditionClause = (condition: ConditionBuilderEntity): string => {
|
|
387
415
|
const name = condition.LEFT_VALUE.FIELD_NAME;
|
|
388
416
|
const type = condition.LEFT_VALUE.FIELD_TYPE;
|
|
@@ -394,6 +422,23 @@ const buildConditionClause = (condition: ConditionBuilderEntity): string => {
|
|
|
394
422
|
if (logicalOperator === LogicalOperator.BLANK || logicalOperator === LogicalOperator.NOT_BLANK) {
|
|
395
423
|
return `(${name} ${logicalOperator === LogicalOperator.BLANK ? '==' : '!='} "")`;
|
|
396
424
|
}
|
|
425
|
+
if (
|
|
426
|
+
logicalOperator === LogicalOperator.STARTS_WITH ||
|
|
427
|
+
logicalOperator === LogicalOperator.ENDS_WITH
|
|
428
|
+
) {
|
|
429
|
+
// No structured-CONDITIONS representation - compiled as a Groovy method
|
|
430
|
+
// call, evaluated at runtime via the platform's Groovy-backed
|
|
431
|
+
// EvaluatorPool (confirmed: RAW_RULE_EXPRESSION is stored verbatim and
|
|
432
|
+
// never re-validated by the structured-expression parser at load/eval
|
|
433
|
+
// time, only at create/edit-time in the dashboard itself). Unlike the
|
|
434
|
+
// ==/>/< path below, the argument is always a String literal regardless
|
|
435
|
+
// of the field's own type - String.startsWith/endsWith takes a
|
|
436
|
+
// CharSequence, so UNQUOTED_FIELD_TYPES (which exists for bare numeric/
|
|
437
|
+
// boolean comparisons) doesn't apply here.
|
|
438
|
+
const method = logicalOperator === LogicalOperator.STARTS_WITH ? 'startsWith' : 'endsWith';
|
|
439
|
+
const value = escapeGroovyStringLiteral(String(condition.RIGHT_VALUE));
|
|
440
|
+
return `(${name}.${method}("${value}"))`;
|
|
441
|
+
}
|
|
397
442
|
|
|
398
443
|
const op = OPERATOR_SYMBOLS[logicalOperator] ?? '==';
|
|
399
444
|
|
|
@@ -449,6 +494,24 @@ const parseAtom = (atom: string): { name: string; operator: string; value: strin
|
|
|
449
494
|
};
|
|
450
495
|
}
|
|
451
496
|
|
|
497
|
+
// FIELD.startsWith("value") / FIELD.endsWith("value") - the method-call
|
|
498
|
+
// clause buildConditionClause emits for STARTS_WITH/ENDS_WITH. Reverses
|
|
499
|
+
// escapeGroovyStringLiteral so the value round-trips through edit unchanged.
|
|
500
|
+
const methodMatch = inner.match(/^([A-Za-z0-9_]+)\.(startsWith|endsWith)\("(.*)"\)$/);
|
|
501
|
+
if (methodMatch) {
|
|
502
|
+
return {
|
|
503
|
+
name: methodMatch[1].trim(),
|
|
504
|
+
operator:
|
|
505
|
+
methodMatch[2] === 'startsWith' ? LogicalOperator.STARTS_WITH : LogicalOperator.ENDS_WITH,
|
|
506
|
+
// Single combined-pattern pass (not sequential independent replaces) so
|
|
507
|
+
// an escaped backslash immediately followed by an escaped quote/dollar
|
|
508
|
+
// can't be misinterpreted - each `\` in the raw text is always followed
|
|
509
|
+
// by exactly one of \, ", or $ (escapeGroovyStringLiteral's output),
|
|
510
|
+
// and this consumes both characters together in one match.
|
|
511
|
+
value: methodMatch[3].replace(/\\([\\"$])/g, '$1'),
|
|
512
|
+
};
|
|
513
|
+
}
|
|
514
|
+
|
|
452
515
|
const symbol = ['==', '!=', '>', '<'].find((s) => inner.includes(` ${s} `));
|
|
453
516
|
if (!symbol) return null;
|
|
454
517
|
// Split on the FIRST occurrence only - a quoted value may itself contain
|
package/src/notify.types.ts
CHANGED
|
@@ -4,6 +4,12 @@ export enum LogicalOperator {
|
|
|
4
4
|
NOT_EQUALS = 'NOT_EQUALS',
|
|
5
5
|
GREATER_THAN = 'GREATER_THAN',
|
|
6
6
|
LESS_THAN = 'LESS_THAN',
|
|
7
|
+
// No structured-CONDITIONS representation server-side (genesis-criteria's
|
|
8
|
+
// Operation enum has no string-method operator) - a condition using either
|
|
9
|
+
// of these always compiles to RAW_RULE_EXPRESSION. See
|
|
10
|
+
// DynamicRuleUtils.hasUnsupportedOperator.
|
|
11
|
+
STARTS_WITH = 'STARTS_WITH',
|
|
12
|
+
ENDS_WITH = 'ENDS_WITH',
|
|
7
13
|
NULL = 'NULL',
|
|
8
14
|
NOT_NULL = 'NOT_NULL',
|
|
9
15
|
BLANK = 'BLANK',
|
|
@@ -27,6 +33,14 @@ export const LogicalOperators = [
|
|
|
27
33
|
label: 'Less Than',
|
|
28
34
|
operator: 'LESS_THAN',
|
|
29
35
|
},
|
|
36
|
+
{
|
|
37
|
+
label: 'Starts With',
|
|
38
|
+
operator: 'STARTS_WITH',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
label: 'Ends With',
|
|
42
|
+
operator: 'ENDS_WITH',
|
|
43
|
+
},
|
|
30
44
|
{
|
|
31
45
|
label: 'Null',
|
|
32
46
|
operator: 'NULL',
|