@genesislcap/expression-builder 14.248.0 → 14.250.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.
@@ -138,50 +138,46 @@
138
138
  },
139
139
  {
140
140
  "kind": "javascript-module",
141
- "path": "src/main/events.ts",
141
+ "path": "src/types/index.ts",
142
+ "declarations": [],
143
+ "exports": [
144
+ {
145
+ "kind": "js",
146
+ "name": "*",
147
+ "declaration": {
148
+ "name": "*",
149
+ "package": "./public.types"
150
+ }
151
+ },
152
+ {
153
+ "kind": "js",
154
+ "name": "*",
155
+ "declaration": {
156
+ "name": "*",
157
+ "package": "./private.types"
158
+ }
159
+ }
160
+ ]
161
+ },
162
+ {
163
+ "kind": "javascript-module",
164
+ "path": "src/types/private.types.ts",
142
165
  "declarations": [],
143
166
  "exports": []
144
167
  },
145
168
  {
146
169
  "kind": "javascript-module",
147
- "path": "src/main/expression-builder.helpers.ts",
170
+ "path": "src/types/public.types.ts",
171
+ "declarations": [],
172
+ "exports": []
173
+ },
174
+ {
175
+ "kind": "javascript-module",
176
+ "path": "src/utils/data-model.ts",
148
177
  "declarations": [
149
178
  {
150
179
  "kind": "function",
151
- "name": "findOperateOnGroup",
152
- "return": {
153
- "type": {
154
- "text": ""
155
- }
156
- },
157
- "parameters": [
158
- {
159
- "name": "model",
160
- "type": {
161
- "text": "ModelGroup"
162
- },
163
- "description": "The root group to start searching from"
164
- },
165
- {
166
- "name": "groupId",
167
- "type": {
168
- "text": "string"
169
- },
170
- "description": "The Group ID to find"
171
- },
172
- {
173
- "name": "fn",
174
- "type": {
175
- "text": "ChildrenOperatorFn"
176
- },
177
- "description": "The function to apply to the children of the found group. A *new* object must be created and returned"
178
- }
179
- ],
180
- "description": "Finds a group within a model and applies a function to create a new children"
181
- },
182
- {
183
- "kind": "function",
184
- "name": "addGroupOrRule",
180
+ "name": "groupToModelGroup",
185
181
  "return": {
186
182
  "type": {
187
183
  "text": "ModelGroup"
@@ -189,756 +185,760 @@
189
185
  },
190
186
  "parameters": [
191
187
  {
192
- "name": "model",
193
- "type": {
194
- "text": "ModelGroup"
195
- }
196
- },
197
- {
198
- "name": "parentGroupId",
188
+ "name": "group",
199
189
  "type": {
200
- "text": "string"
190
+ "text": "Group"
201
191
  }
202
192
  },
203
193
  {
204
- "name": "newItem",
194
+ "name": "provider",
205
195
  "type": {
206
- "text": "ModelGroup | ModelRule"
196
+ "text": "MetadataProvider"
207
197
  }
208
198
  }
209
- ]
199
+ ],
200
+ "description": "Converts a Group to a ModelGroup (adds required metadata)"
210
201
  },
211
202
  {
212
203
  "kind": "function",
213
- "name": "deleteGroup",
204
+ "name": "modelGroupToGroup",
214
205
  "return": {
215
206
  "type": {
216
- "text": "ModelGroup"
207
+ "text": ""
217
208
  }
218
209
  },
219
210
  "parameters": [
220
211
  {
221
- "name": "model",
212
+ "name": "modelGroup",
222
213
  "type": {
223
214
  "text": "ModelGroup"
224
- }
225
- },
226
- {
227
- "name": "groupIdToDelete",
228
- "type": {
229
- "text": "string"
230
- }
215
+ },
216
+ "description": "The internal ModelGroup to convert."
231
217
  }
232
- ]
218
+ ],
219
+ "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
233
220
  },
234
221
  {
235
222
  "kind": "function",
236
- "name": "deleteRule",
223
+ "name": "modelRuleToRule",
237
224
  "return": {
238
225
  "type": {
239
- "text": "ModelGroup"
226
+ "text": ""
240
227
  }
241
228
  },
242
229
  "parameters": [
243
230
  {
244
- "name": "model",
245
- "type": {
246
- "text": "ModelGroup"
247
- }
248
- },
249
- {
250
- "name": "ruleIdToDelete",
231
+ "name": "modelRule",
251
232
  "type": {
252
- "text": "string"
253
- }
233
+ "text": "ModelRule"
234
+ },
235
+ "description": "The internal ModelRule to convert."
254
236
  }
255
- ]
237
+ ],
238
+ "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
239
+ }
240
+ ],
241
+ "exports": [
242
+ {
243
+ "kind": "js",
244
+ "name": "groupToModelGroup",
245
+ "declaration": {
246
+ "name": "groupToModelGroup",
247
+ "module": "src/utils/data-model.ts"
248
+ }
256
249
  },
257
250
  {
258
- "kind": "variable",
259
- "name": "ROOT_GROUP",
260
- "type": {
261
- "text": "string"
262
- },
263
- "default": "'group-root'"
251
+ "kind": "js",
252
+ "name": "modelGroupToGroup",
253
+ "declaration": {
254
+ "name": "modelGroupToGroup",
255
+ "module": "src/utils/data-model.ts"
256
+ }
264
257
  },
258
+ {
259
+ "kind": "js",
260
+ "name": "modelRuleToRule",
261
+ "declaration": {
262
+ "name": "modelRuleToRule",
263
+ "module": "src/utils/data-model.ts"
264
+ }
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ "kind": "javascript-module",
270
+ "path": "src/utils/formatting.ts",
271
+ "declarations": [
265
272
  {
266
273
  "kind": "function",
267
- "name": "updateGroupData",
268
- "return": {
269
- "type": {
270
- "text": "ModelGroup"
271
- }
272
- },
274
+ "name": "formatDateString",
273
275
  "parameters": [
274
276
  {
275
- "name": "model",
276
- "type": {
277
- "text": "ModelGroup"
278
- }
279
- },
280
- {
281
- "name": "groupIdToUpdate",
282
- "type": {
283
- "text": "string"
284
- }
285
- },
286
- {
287
- "name": "newData",
277
+ "name": "date",
288
278
  "type": {
289
- "text": "EventsDetailMap[Events.UpdateGroup]['newData']"
279
+ "text": "Date"
290
280
  }
291
281
  }
292
- ]
282
+ ],
283
+ "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`"
293
284
  },
294
285
  {
295
286
  "kind": "function",
296
- "name": "updateRuleData",
297
- "return": {
298
- "type": {
299
- "text": "ModelGroup"
300
- }
301
- },
287
+ "name": "formatDateTimeString",
302
288
  "parameters": [
303
289
  {
304
- "name": "model",
305
- "type": {
306
- "text": "ModelGroup"
307
- }
308
- },
309
- {
310
- "name": "ruleIdToUpdate",
311
- "type": {
312
- "text": "string"
313
- }
314
- },
315
- {
316
- "name": "newData",
290
+ "name": "date",
317
291
  "type": {
318
- "text": "EventsDetailMap[Events.UpdateRule]['newData']"
292
+ "text": "Date"
319
293
  }
320
294
  }
321
- ]
295
+ ],
296
+ "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`"
322
297
  }
323
298
  ],
324
299
  "exports": [
325
300
  {
326
301
  "kind": "js",
327
- "name": "findOperateOnGroup",
302
+ "name": "formatDateString",
328
303
  "declaration": {
329
- "name": "findOperateOnGroup",
330
- "module": "src/main/expression-builder.helpers.ts"
304
+ "name": "formatDateString",
305
+ "module": "src/utils/formatting.ts"
331
306
  }
332
307
  },
333
308
  {
334
309
  "kind": "js",
335
- "name": "addGroupOrRule",
310
+ "name": "formatDateTimeString",
336
311
  "declaration": {
337
- "name": "addGroupOrRule",
338
- "module": "src/main/expression-builder.helpers.ts"
312
+ "name": "formatDateTimeString",
313
+ "module": "src/utils/formatting.ts"
339
314
  }
340
- },
315
+ }
316
+ ]
317
+ },
318
+ {
319
+ "kind": "javascript-module",
320
+ "path": "src/utils/index.ts",
321
+ "declarations": [],
322
+ "exports": [
341
323
  {
342
324
  "kind": "js",
343
- "name": "deleteGroup",
325
+ "name": "*",
344
326
  "declaration": {
345
- "name": "deleteGroup",
346
- "module": "src/main/expression-builder.helpers.ts"
327
+ "name": "*",
328
+ "package": "./data-model"
347
329
  }
348
330
  },
349
331
  {
350
332
  "kind": "js",
351
- "name": "deleteRule",
333
+ "name": "*",
352
334
  "declaration": {
353
- "name": "deleteRule",
354
- "module": "src/main/expression-builder.helpers.ts"
335
+ "name": "*",
336
+ "package": "./formatting"
355
337
  }
356
338
  },
357
339
  {
358
340
  "kind": "js",
359
- "name": "ROOT_GROUP",
341
+ "name": "*",
360
342
  "declaration": {
361
- "name": "ROOT_GROUP",
362
- "module": "src/main/expression-builder.helpers.ts"
363
- }
364
- },
365
- {
366
- "kind": "js",
367
- "name": "updateGroupData",
368
- "declaration": {
369
- "name": "updateGroupData",
370
- "module": "src/main/expression-builder.helpers.ts"
371
- }
372
- },
373
- {
374
- "kind": "js",
375
- "name": "updateRuleData",
376
- "declaration": {
377
- "name": "updateRuleData",
378
- "module": "src/main/expression-builder.helpers.ts"
343
+ "name": "*",
344
+ "package": "./misc"
379
345
  }
380
346
  }
381
347
  ]
382
348
  },
383
349
  {
384
350
  "kind": "javascript-module",
385
- "path": "src/main/expression-builder.styles.ts",
351
+ "path": "src/utils/misc.ts",
386
352
  "declarations": [
387
353
  {
388
- "kind": "variable",
389
- "name": "styles",
390
- "default": "css`\n :host {\n --item-vertical-spacing: 4px;\n --item-border-radius: 5px;\n --group-background-color: rgb(250 240 210 / 50%);\n --group-border-color: #dcc896;\n --group-border: 1px solid var(--group-border-color);\n --group-padding: 10px;\n --rule-background-color: rgb(255 255 255 / 90%);\n --rule-border-color: #eee;\n --rule-border: 1px solid var(--rule-border-color);\n --rule-padding: 5px;\n --rule-value-separator: 1px solid #ddd;\n --error-icon-color: #f00;\n --error-border-color: #f99;\n --error-background-color: #fdd;\n --ticks-width: 2px;\n --ticks-color: #ccc;\n }\n\n p.test {\n color: black;\n }\n\n .query-builder {\n font-family: sans-serif;\n }\n\n .rules-group-container {\n position: relative;\n margin: var(--item-vertical-spacing) 0;\n border-radius: var(--item-border-radius);\n padding: var(--group-padding);\n border: var(--group-border);\n background: var(--group-background-color);\n }\n\n .rules-group-header {\n margin-bottom: var(--group-padding);\n }\n\n .group-conditions {\n display: inline-block;\n }\n\n .group-conditions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n border: 1px solid #007bff;\n color: #007bff;\n background-color: transparent;\n cursor: pointer;\n }\n\n .group-conditions .btn:hover {\n background-color: #007bff;\n color: #fff;\n }\n\n .group-conditions .btn.active {\n background-color: #007bff;\n color: #fff;\n }\n\n .group-actions {\n display: inline-block;\n float: right;\n }\n\n .rules-list {\n list-style: none;\n padding: 0 0 0 20px; /* Adjusted ticks position */\n margin: 0;\n }\n\n .rule-container {\n position: relative;\n margin: var(--item-vertical-spacing) 0;\n border-radius: var(--item-border-radius);\n padding: var(--rule-padding);\n border: var(--rule-border);\n background: var(--rule-background-color);\n }\n\n .rule-header {\n margin-bottom: 5px;\n }\n\n .rule-actions {\n display: inline-block;\n float: right;\n }\n\n .rule-field-container,\n .rule-operator-container,\n .rule-value-container {\n display: inline-block;\n margin: 0 5px 0 0;\n vertical-align: middle;\n }\n\n .rule-value-container {\n border-left: var(--rule-value-separator);\n padding-left: 5px;\n }\n\n .rule-value-container label {\n margin-bottom: 0;\n font-weight: normal;\n }\n\n .rule-value-container label.block {\n display: block;\n }\n\n .error-container {\n display: none;\n cursor: help;\n color: var(--error-icon-color);\n margin-left: 5px;\n }\n\n .rule-container.has-error,\n .rules-group-container.has-error {\n background-color: var(--error-background-color);\n border-color: var(--error-border-color);\n }\n\n .rule-container.has-error .error-container,\n .rules-group-container.has-error .error-container {\n display: inline-block !important;\n }\n\n /* Ticks */\n .rules-list > * {\n position: relative;\n }\n\n .rules-list > *::before,\n .rules-list > *::after {\n content: '';\n position: absolute;\n left: -10px; /* Adjusted ticks position */\n width: 10px; /* Adjusted ticks position */\n border-color: var(--ticks-color);\n border-style: solid;\n }\n\n .rules-list > *::before {\n top: -2px; /* Adjusted ticks position */\n height: calc(50% + var(--item-vertical-spacing));\n border-width: 0 0 var(--ticks-width) var(--ticks-width);\n }\n\n .rules-list > *::after {\n top: 50%;\n border-width: 0 0 0 var(--ticks-width);\n height: 50%;\n }\n\n .rules-list > *:first-child::before {\n top: calc(-1 * var(--group-padding) - var(--ticks-width));\n height: calc(50% + var(--group-padding) + var(--item-vertical-spacing));\n }\n\n .rules-list > *:last-child::before {\n border-radius: 0 0 0 calc(2 * var(--ticks-width));\n }\n\n .rules-list > *:last-child::after {\n display: none;\n }\n`"
354
+ "kind": "function",
355
+ "name": "processOptGroups",
356
+ "return": {
357
+ "type": {
358
+ "text": "(T | { optgroup: string | null; xs: T[] })[]"
359
+ }
360
+ },
361
+ "parameters": [
362
+ {
363
+ "name": "xs",
364
+ "type": {
365
+ "text": "T[]"
366
+ }
367
+ }
368
+ ]
369
+ },
370
+ {
371
+ "kind": "function",
372
+ "name": "applyCustomStyles",
373
+ "return": {
374
+ "type": {
375
+ "text": "void"
376
+ }
377
+ },
378
+ "parameters": [
379
+ {
380
+ "name": "component",
381
+ "type": {
382
+ "text": "HTMLElement"
383
+ },
384
+ "description": "The web component instance"
385
+ },
386
+ {
387
+ "name": "styles",
388
+ "type": {
389
+ "text": "Styles | undefined | null"
390
+ },
391
+ "description": "The styles configuration object"
392
+ },
393
+ {
394
+ "name": "styleKey",
395
+ "type": {
396
+ "text": "keyof NonNullable<Styles['customStyles']>"
397
+ },
398
+ "description": "The key in styles.customStyles to use for custom styles"
399
+ }
400
+ ],
401
+ "description": "Utility function to add custom styles to a web component's shadow root"
391
402
  }
392
403
  ],
393
404
  "exports": [
394
405
  {
395
406
  "kind": "js",
396
- "name": "styles",
407
+ "name": "processOptGroups",
397
408
  "declaration": {
398
- "name": "styles",
399
- "module": "src/main/expression-builder.styles.ts"
409
+ "name": "processOptGroups",
410
+ "module": "src/utils/misc.ts"
400
411
  }
401
- }
402
- ]
403
- },
404
- {
405
- "kind": "javascript-module",
406
- "path": "src/main/expression-builder.template.ts",
407
- "declarations": [
408
- {
409
- "kind": "variable",
410
- "name": "template",
411
- "default": "html<ExpressionBuilder>`\n <div class=\"query-builder\">\n <expression-group\n :model=${(x) => x.model}\n :config=${(x) => x.config}\n :styles=${(x) => x.styles}\n ></expression-group>\n </div>\n`"
412
- }
413
- ],
414
- "exports": [
412
+ },
415
413
  {
416
414
  "kind": "js",
417
- "name": "template",
415
+ "name": "applyCustomStyles",
418
416
  "declaration": {
419
- "name": "template",
420
- "module": "src/main/expression-builder.template.ts"
417
+ "name": "applyCustomStyles",
418
+ "module": "src/utils/misc.ts"
421
419
  }
422
420
  }
423
421
  ]
424
422
  },
425
423
  {
426
424
  "kind": "javascript-module",
427
- "path": "src/main/expression-builder.ts",
425
+ "path": "src/main/events.ts",
426
+ "declarations": [],
427
+ "exports": []
428
+ },
429
+ {
430
+ "kind": "javascript-module",
431
+ "path": "src/main/expression-builder.helpers.ts",
428
432
  "declarations": [
429
433
  {
430
- "kind": "class",
431
- "description": "",
432
- "name": "ExpressionBuilder",
433
- "members": [
434
- {
435
- "kind": "field",
436
- "name": "config",
437
- "type": {
438
- "text": "Config"
439
- }
440
- },
441
- {
442
- "kind": "field",
443
- "name": "styles",
444
- "type": {
445
- "text": "Styles | undefined"
446
- }
447
- },
434
+ "kind": "function",
435
+ "name": "findOperateOnGroup",
436
+ "return": {
437
+ "type": {
438
+ "text": ""
439
+ }
440
+ },
441
+ "parameters": [
448
442
  {
449
- "kind": "field",
450
443
  "name": "model",
451
444
  "type": {
452
- "text": "ModelGroup | null"
445
+ "text": "ModelGroup"
453
446
  },
454
- "default": "null"
447
+ "description": "The root group to start searching from"
455
448
  },
456
449
  {
457
- "kind": "field",
458
- "name": "ruleCount",
450
+ "name": "groupId",
459
451
  "type": {
460
- "text": "number"
452
+ "text": "string"
461
453
  },
462
- "privacy": "private",
463
- "default": "0"
454
+ "description": "The Group ID to find"
464
455
  },
465
456
  {
466
- "kind": "field",
467
- "name": "groupCount",
457
+ "name": "fn",
468
458
  "type": {
469
- "text": "number"
459
+ "text": "ChildrenOperatorFn"
470
460
  },
471
- "privacy": "private",
472
- "default": "0"
473
- },
461
+ "description": "The function to apply to the children of the found group. A *new* object must be created and returned"
462
+ }
463
+ ],
464
+ "description": "Finds a group within a model and applies a function to create a new children"
465
+ },
466
+ {
467
+ "kind": "function",
468
+ "name": "addGroupOrRule",
469
+ "return": {
470
+ "type": {
471
+ "text": "ModelGroup"
472
+ }
473
+ },
474
+ "parameters": [
474
475
  {
475
- "kind": "method",
476
- "name": "dispatchChangeEvent",
477
- "privacy": "protected",
478
- "parameters": [
479
- {
480
- "name": "group",
481
- "type": {
482
- "text": "Group"
483
- }
484
- }
485
- ]
476
+ "name": "model",
477
+ "type": {
478
+ "text": "ModelGroup"
479
+ }
486
480
  },
487
481
  {
488
- "kind": "field",
489
- "name": "handleAddGroup",
490
- "privacy": "private"
482
+ "name": "parentGroupId",
483
+ "type": {
484
+ "text": "string"
485
+ }
491
486
  },
492
487
  {
493
- "kind": "method",
494
- "name": "_handleAddGroup",
495
- "privacy": "private",
496
- "parameters": [
497
- {
498
- "name": "event",
499
- "type": {
500
- "text": "CustomEvent<EventsDetailMap[Events.AddGroup]>"
501
- }
502
- }
503
- ]
504
- },
488
+ "name": "newItem",
489
+ "type": {
490
+ "text": "ModelGroup | ModelRule"
491
+ }
492
+ }
493
+ ]
494
+ },
495
+ {
496
+ "kind": "function",
497
+ "name": "deleteGroup",
498
+ "return": {
499
+ "type": {
500
+ "text": "ModelGroup"
501
+ }
502
+ },
503
+ "parameters": [
505
504
  {
506
- "kind": "field",
507
- "name": "handleAddRule",
508
- "privacy": "private"
505
+ "name": "model",
506
+ "type": {
507
+ "text": "ModelGroup"
508
+ }
509
509
  },
510
510
  {
511
- "kind": "method",
512
- "name": "_handleAddRule",
513
- "privacy": "private",
514
- "parameters": [
515
- {
516
- "name": "event",
517
- "type": {
518
- "text": "CustomEvent<EventsDetailMap[Events.AddRule]>"
519
- }
520
- }
521
- ]
522
- },
511
+ "name": "groupIdToDelete",
512
+ "type": {
513
+ "text": "string"
514
+ }
515
+ }
516
+ ]
517
+ },
518
+ {
519
+ "kind": "function",
520
+ "name": "deleteRule",
521
+ "return": {
522
+ "type": {
523
+ "text": "ModelGroup"
524
+ }
525
+ },
526
+ "parameters": [
523
527
  {
524
- "kind": "field",
525
- "name": "handleDeleteGroup",
526
- "privacy": "private"
528
+ "name": "model",
529
+ "type": {
530
+ "text": "ModelGroup"
531
+ }
527
532
  },
528
533
  {
529
- "kind": "method",
530
- "name": "_handleDeleteGroup",
531
- "privacy": "private",
532
- "parameters": [
533
- {
534
- "name": "event",
535
- "type": {
536
- "text": "CustomEvent<EventsDetailMap[Events.DelGroup]>"
537
- }
538
- }
539
- ]
540
- },
534
+ "name": "ruleIdToDelete",
535
+ "type": {
536
+ "text": "string"
537
+ }
538
+ }
539
+ ]
540
+ },
541
+ {
542
+ "kind": "variable",
543
+ "name": "ROOT_GROUP",
544
+ "type": {
545
+ "text": "string"
546
+ },
547
+ "default": "'group-root'"
548
+ },
549
+ {
550
+ "kind": "function",
551
+ "name": "updateGroupData",
552
+ "return": {
553
+ "type": {
554
+ "text": "ModelGroup"
555
+ }
556
+ },
557
+ "parameters": [
541
558
  {
542
- "kind": "field",
543
- "name": "handleDeleteRule",
544
- "privacy": "private"
559
+ "name": "model",
560
+ "type": {
561
+ "text": "ModelGroup"
562
+ }
545
563
  },
546
564
  {
547
- "kind": "method",
548
- "name": "_handleDeleteRule",
549
- "privacy": "private",
550
- "parameters": [
551
- {
552
- "name": "event",
553
- "type": {
554
- "text": "CustomEvent<EventsDetailMap[Events.DelRule]>"
555
- }
556
- }
557
- ]
565
+ "name": "groupIdToUpdate",
566
+ "type": {
567
+ "text": "string"
568
+ }
558
569
  },
559
570
  {
560
- "kind": "field",
561
- "name": "handleUpdateGroupData",
562
- "privacy": "private"
563
- },
571
+ "name": "newData",
572
+ "type": {
573
+ "text": "EventsDetailMap[Events.UpdateGroup]['newData']"
574
+ }
575
+ }
576
+ ]
577
+ },
578
+ {
579
+ "kind": "function",
580
+ "name": "updateRuleData",
581
+ "return": {
582
+ "type": {
583
+ "text": "ModelGroup"
584
+ }
585
+ },
586
+ "parameters": [
564
587
  {
565
- "kind": "method",
566
- "name": "_handleUpdateGroupData",
567
- "privacy": "private",
568
- "parameters": [
569
- {
570
- "name": "event",
571
- "type": {
572
- "text": "CustomEvent<EventsDetailMap[Events.UpdateGroup]>"
573
- }
574
- }
575
- ]
588
+ "name": "model",
589
+ "type": {
590
+ "text": "ModelGroup"
591
+ }
576
592
  },
577
593
  {
578
- "kind": "field",
579
- "name": "handleUpdateRuleData",
580
- "privacy": "private"
594
+ "name": "ruleIdToUpdate",
595
+ "type": {
596
+ "text": "string"
597
+ }
581
598
  },
582
599
  {
583
- "kind": "method",
584
- "name": "_handleUpdateRuleData",
585
- "privacy": "private",
586
- "parameters": [
587
- {
588
- "name": "event",
589
- "type": {
590
- "text": "CustomEvent<EventsDetailMap[Events.UpdateRule]>"
591
- }
592
- }
593
- ]
594
- }
595
- ],
596
- "events": [
597
- {
598
- "name": "change",
600
+ "name": "newData",
599
601
  "type": {
600
- "text": "CustomEvent"
602
+ "text": "EventsDetailMap[Events.UpdateRule]['newData']"
601
603
  }
602
604
  }
603
- ],
604
- "superclass": {
605
- "name": "GenesisElement",
606
- "package": "@genesislcap/web-core"
607
- },
608
- "tagName": "expression-builder",
609
- "customElement": true
605
+ ]
610
606
  }
611
607
  ],
612
608
  "exports": [
613
609
  {
614
610
  "kind": "js",
615
- "name": "ExpressionBuilder",
611
+ "name": "findOperateOnGroup",
616
612
  "declaration": {
617
- "name": "ExpressionBuilder",
618
- "module": "src/main/expression-builder.ts"
613
+ "name": "findOperateOnGroup",
614
+ "module": "src/main/expression-builder.helpers.ts"
619
615
  }
620
616
  },
621
617
  {
622
- "kind": "custom-element-definition",
623
- "name": "expression-builder",
618
+ "kind": "js",
619
+ "name": "addGroupOrRule",
624
620
  "declaration": {
625
- "name": "ExpressionBuilder",
626
- "module": "src/main/expression-builder.ts"
621
+ "name": "addGroupOrRule",
622
+ "module": "src/main/expression-builder.helpers.ts"
627
623
  }
628
- }
629
- ]
630
- },
631
- {
632
- "kind": "javascript-module",
633
- "path": "src/main/index.ts",
634
- "declarations": [],
635
- "exports": [
624
+ },
636
625
  {
637
626
  "kind": "js",
638
- "name": "*",
627
+ "name": "deleteGroup",
639
628
  "declaration": {
640
- "name": "*",
641
- "package": "./expression-builder"
629
+ "name": "deleteGroup",
630
+ "module": "src/main/expression-builder.helpers.ts"
642
631
  }
643
632
  },
644
633
  {
645
634
  "kind": "js",
646
- "name": "*",
635
+ "name": "deleteRule",
647
636
  "declaration": {
648
- "name": "*",
649
- "package": "./expression-builder.styles"
637
+ "name": "deleteRule",
638
+ "module": "src/main/expression-builder.helpers.ts"
650
639
  }
651
640
  },
652
641
  {
653
642
  "kind": "js",
654
- "name": "*",
643
+ "name": "ROOT_GROUP",
655
644
  "declaration": {
656
- "name": "*",
657
- "package": "./expression-builder.template"
645
+ "name": "ROOT_GROUP",
646
+ "module": "src/main/expression-builder.helpers.ts"
658
647
  }
659
- }
660
- ]
661
- },
662
- {
663
- "kind": "javascript-module",
664
- "path": "src/types/index.ts",
665
- "declarations": [],
666
- "exports": [
648
+ },
667
649
  {
668
650
  "kind": "js",
669
- "name": "*",
651
+ "name": "updateGroupData",
670
652
  "declaration": {
671
- "name": "*",
672
- "package": "./public.types"
653
+ "name": "updateGroupData",
654
+ "module": "src/main/expression-builder.helpers.ts"
673
655
  }
674
656
  },
675
657
  {
676
658
  "kind": "js",
677
- "name": "*",
659
+ "name": "updateRuleData",
678
660
  "declaration": {
679
- "name": "*",
680
- "package": "./private.types"
661
+ "name": "updateRuleData",
662
+ "module": "src/main/expression-builder.helpers.ts"
681
663
  }
682
664
  }
683
665
  ]
684
666
  },
685
667
  {
686
668
  "kind": "javascript-module",
687
- "path": "src/types/private.types.ts",
688
- "declarations": [],
689
- "exports": []
669
+ "path": "src/main/expression-builder.styles.ts",
670
+ "declarations": [
671
+ {
672
+ "kind": "variable",
673
+ "name": "styles",
674
+ "default": "css`\n :host {\n --item-vertical-spacing: 4px;\n --item-border-radius: 5px;\n --group-background-color: rgb(250 240 210 / 50%);\n --group-border-color: #dcc896;\n --group-border: 1px solid var(--group-border-color);\n --group-padding: 10px;\n --rule-background-color: rgb(255 255 255 / 90%);\n --rule-border-color: #eee;\n --rule-border: 1px solid var(--rule-border-color);\n --rule-padding: 5px;\n --rule-value-separator: 1px solid #ddd;\n --error-icon-color: #f00;\n --error-border-color: #f99;\n --error-background-color: #fdd;\n --ticks-width: 2px;\n --ticks-color: #ccc;\n }\n\n p.test {\n color: black;\n }\n\n .query-builder {\n font-family: sans-serif;\n }\n\n .rules-group-container {\n position: relative;\n margin: var(--item-vertical-spacing) 0;\n border-radius: var(--item-border-radius);\n padding: var(--group-padding);\n border: var(--group-border);\n background: var(--group-background-color);\n }\n\n .rules-group-header {\n margin-bottom: var(--group-padding);\n }\n\n .group-conditions {\n display: inline-block;\n }\n\n .group-conditions .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n border: 1px solid #007bff;\n color: #007bff;\n background-color: transparent;\n cursor: pointer;\n }\n\n .group-conditions .btn:hover {\n background-color: #007bff;\n color: #fff;\n }\n\n .group-conditions .btn.active {\n background-color: #007bff;\n color: #fff;\n }\n\n .group-actions {\n display: inline-block;\n float: right;\n }\n\n .rules-list {\n list-style: none;\n padding: 0 0 0 20px; /* Adjusted ticks position */\n margin: 0;\n }\n\n .rule-container {\n position: relative;\n margin: var(--item-vertical-spacing) 0;\n border-radius: var(--item-border-radius);\n padding: var(--rule-padding);\n border: var(--rule-border);\n background: var(--rule-background-color);\n }\n\n .rule-header {\n margin-bottom: 5px;\n }\n\n .rule-actions {\n display: inline-block;\n float: right;\n }\n\n .rule-field-container,\n .rule-operator-container,\n .rule-value-container {\n display: inline-block;\n margin: 0 5px 0 0;\n vertical-align: middle;\n }\n\n .rule-value-container {\n border-left: var(--rule-value-separator);\n padding-left: 5px;\n }\n\n .rule-value-container label {\n margin-bottom: 0;\n font-weight: normal;\n }\n\n .rule-value-container label.block {\n display: block;\n }\n\n .error-container {\n display: none;\n cursor: help;\n color: var(--error-icon-color);\n margin-left: 5px;\n }\n\n .rule-container.has-error,\n .rules-group-container.has-error {\n background-color: var(--error-background-color);\n border-color: var(--error-border-color);\n }\n\n .rule-container.has-error .error-container,\n .rules-group-container.has-error .error-container {\n display: inline-block !important;\n }\n\n /* Ticks */\n .rules-list > * {\n position: relative;\n }\n\n .rules-list > *::before,\n .rules-list > *::after {\n content: '';\n position: absolute;\n left: -10px; /* Adjusted ticks position */\n width: 10px; /* Adjusted ticks position */\n border-color: var(--ticks-color);\n border-style: solid;\n }\n\n .rules-list > *::before {\n top: -2px; /* Adjusted ticks position */\n height: calc(50% + var(--item-vertical-spacing));\n border-width: 0 0 var(--ticks-width) var(--ticks-width);\n }\n\n .rules-list > *::after {\n top: 50%;\n border-width: 0 0 0 var(--ticks-width);\n height: 50%;\n }\n\n .rules-list > *:first-child::before {\n top: calc(-1 * var(--group-padding) - var(--ticks-width));\n height: calc(50% + var(--group-padding) + var(--item-vertical-spacing));\n }\n\n .rules-list > *:last-child::before {\n border-radius: 0 0 0 calc(2 * var(--ticks-width));\n }\n\n .rules-list > *:last-child::after {\n display: none;\n }\n`"
675
+ }
676
+ ],
677
+ "exports": [
678
+ {
679
+ "kind": "js",
680
+ "name": "styles",
681
+ "declaration": {
682
+ "name": "styles",
683
+ "module": "src/main/expression-builder.styles.ts"
684
+ }
685
+ }
686
+ ]
690
687
  },
691
688
  {
692
689
  "kind": "javascript-module",
693
- "path": "src/types/public.types.ts",
694
- "declarations": [],
695
- "exports": []
690
+ "path": "src/main/expression-builder.template.ts",
691
+ "declarations": [
692
+ {
693
+ "kind": "variable",
694
+ "name": "template",
695
+ "default": "html<ExpressionBuilder>`\n <div class=\"query-builder\">\n <expression-group\n :model=${(x) => x.model}\n :config=${(x) => x.config}\n :styles=${(x) => x.styles}\n ></expression-group>\n </div>\n`"
696
+ }
697
+ ],
698
+ "exports": [
699
+ {
700
+ "kind": "js",
701
+ "name": "template",
702
+ "declaration": {
703
+ "name": "template",
704
+ "module": "src/main/expression-builder.template.ts"
705
+ }
706
+ }
707
+ ]
696
708
  },
697
709
  {
698
710
  "kind": "javascript-module",
699
- "path": "src/utils/data-model.ts",
711
+ "path": "src/main/expression-builder.ts",
700
712
  "declarations": [
701
713
  {
702
- "kind": "function",
703
- "name": "groupToModelGroup",
704
- "return": {
705
- "type": {
706
- "text": "ModelGroup"
707
- }
708
- },
709
- "parameters": [
714
+ "kind": "class",
715
+ "description": "",
716
+ "name": "ExpressionBuilder",
717
+ "members": [
710
718
  {
711
- "name": "group",
719
+ "kind": "field",
720
+ "name": "config",
712
721
  "type": {
713
- "text": "Group"
722
+ "text": "Config"
714
723
  }
715
724
  },
716
725
  {
717
- "name": "provider",
726
+ "kind": "field",
727
+ "name": "styles",
718
728
  "type": {
719
- "text": "MetadataProvider"
729
+ "text": "Styles | undefined"
720
730
  }
721
- }
722
- ],
723
- "description": "Converts a Group to a ModelGroup (adds required metadata)"
724
- },
725
- {
726
- "kind": "function",
727
- "name": "modelGroupToGroup",
728
- "return": {
729
- "type": {
730
- "text": ""
731
- }
732
- },
733
- "parameters": [
731
+ },
734
732
  {
735
- "name": "modelGroup",
733
+ "kind": "field",
734
+ "name": "model",
736
735
  "type": {
737
- "text": "ModelGroup"
736
+ "text": "ModelGroup | null"
738
737
  },
739
- "description": "The internal ModelGroup to convert."
740
- }
741
- ],
742
- "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
743
- },
744
- {
745
- "kind": "function",
746
- "name": "modelRuleToRule",
747
- "return": {
748
- "type": {
749
- "text": ""
750
- }
751
- },
752
- "parameters": [
738
+ "default": "null"
739
+ },
753
740
  {
754
- "name": "modelRule",
741
+ "kind": "field",
742
+ "name": "ruleCount",
755
743
  "type": {
756
- "text": "ModelRule"
744
+ "text": "number"
757
745
  },
758
- "description": "The internal ModelRule to convert."
759
- }
760
- ],
761
- "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
762
- }
763
- ],
764
- "exports": [
765
- {
766
- "kind": "js",
767
- "name": "groupToModelGroup",
768
- "declaration": {
769
- "name": "groupToModelGroup",
770
- "module": "src/utils/data-model.ts"
771
- }
772
- },
773
- {
774
- "kind": "js",
775
- "name": "modelGroupToGroup",
776
- "declaration": {
777
- "name": "modelGroupToGroup",
778
- "module": "src/utils/data-model.ts"
779
- }
780
- },
781
- {
782
- "kind": "js",
783
- "name": "modelRuleToRule",
784
- "declaration": {
785
- "name": "modelRuleToRule",
786
- "module": "src/utils/data-model.ts"
787
- }
788
- }
789
- ]
790
- },
791
- {
792
- "kind": "javascript-module",
793
- "path": "src/utils/formatting.ts",
794
- "declarations": [
795
- {
796
- "kind": "function",
797
- "name": "formatDateString",
798
- "parameters": [
746
+ "privacy": "private",
747
+ "default": "0"
748
+ },
799
749
  {
800
- "name": "date",
750
+ "kind": "field",
751
+ "name": "groupCount",
801
752
  "type": {
802
- "text": "Date"
803
- }
753
+ "text": "number"
754
+ },
755
+ "privacy": "private",
756
+ "default": "0"
757
+ },
758
+ {
759
+ "kind": "method",
760
+ "name": "dispatchChangeEvent",
761
+ "privacy": "protected",
762
+ "parameters": [
763
+ {
764
+ "name": "group",
765
+ "type": {
766
+ "text": "Group"
767
+ }
768
+ }
769
+ ]
770
+ },
771
+ {
772
+ "kind": "field",
773
+ "name": "handleAddGroup",
774
+ "privacy": "private"
775
+ },
776
+ {
777
+ "kind": "method",
778
+ "name": "_handleAddGroup",
779
+ "privacy": "private",
780
+ "parameters": [
781
+ {
782
+ "name": "event",
783
+ "type": {
784
+ "text": "CustomEvent<EventsDetailMap[Events.AddGroup]>"
785
+ }
786
+ }
787
+ ]
788
+ },
789
+ {
790
+ "kind": "field",
791
+ "name": "handleAddRule",
792
+ "privacy": "private"
793
+ },
794
+ {
795
+ "kind": "method",
796
+ "name": "_handleAddRule",
797
+ "privacy": "private",
798
+ "parameters": [
799
+ {
800
+ "name": "event",
801
+ "type": {
802
+ "text": "CustomEvent<EventsDetailMap[Events.AddRule]>"
803
+ }
804
+ }
805
+ ]
806
+ },
807
+ {
808
+ "kind": "field",
809
+ "name": "handleDeleteGroup",
810
+ "privacy": "private"
811
+ },
812
+ {
813
+ "kind": "method",
814
+ "name": "_handleDeleteGroup",
815
+ "privacy": "private",
816
+ "parameters": [
817
+ {
818
+ "name": "event",
819
+ "type": {
820
+ "text": "CustomEvent<EventsDetailMap[Events.DelGroup]>"
821
+ }
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "kind": "field",
827
+ "name": "handleDeleteRule",
828
+ "privacy": "private"
829
+ },
830
+ {
831
+ "kind": "method",
832
+ "name": "_handleDeleteRule",
833
+ "privacy": "private",
834
+ "parameters": [
835
+ {
836
+ "name": "event",
837
+ "type": {
838
+ "text": "CustomEvent<EventsDetailMap[Events.DelRule]>"
839
+ }
840
+ }
841
+ ]
842
+ },
843
+ {
844
+ "kind": "field",
845
+ "name": "handleUpdateGroupData",
846
+ "privacy": "private"
847
+ },
848
+ {
849
+ "kind": "method",
850
+ "name": "_handleUpdateGroupData",
851
+ "privacy": "private",
852
+ "parameters": [
853
+ {
854
+ "name": "event",
855
+ "type": {
856
+ "text": "CustomEvent<EventsDetailMap[Events.UpdateGroup]>"
857
+ }
858
+ }
859
+ ]
860
+ },
861
+ {
862
+ "kind": "field",
863
+ "name": "handleUpdateRuleData",
864
+ "privacy": "private"
865
+ },
866
+ {
867
+ "kind": "method",
868
+ "name": "_handleUpdateRuleData",
869
+ "privacy": "private",
870
+ "parameters": [
871
+ {
872
+ "name": "event",
873
+ "type": {
874
+ "text": "CustomEvent<EventsDetailMap[Events.UpdateRule]>"
875
+ }
876
+ }
877
+ ]
804
878
  }
805
879
  ],
806
- "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`"
807
- },
808
- {
809
- "kind": "function",
810
- "name": "formatDateTimeString",
811
- "parameters": [
880
+ "events": [
812
881
  {
813
- "name": "date",
882
+ "name": "change",
814
883
  "type": {
815
- "text": "Date"
884
+ "text": "CustomEvent"
816
885
  }
817
886
  }
818
887
  ],
819
- "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`"
888
+ "superclass": {
889
+ "name": "GenesisElement",
890
+ "package": "@genesislcap/web-core"
891
+ },
892
+ "tagName": "expression-builder",
893
+ "customElement": true
820
894
  }
821
895
  ],
822
896
  "exports": [
823
897
  {
824
898
  "kind": "js",
825
- "name": "formatDateString",
826
- "declaration": {
827
- "name": "formatDateString",
828
- "module": "src/utils/formatting.ts"
829
- }
830
- },
831
- {
832
- "kind": "js",
833
- "name": "formatDateTimeString",
834
- "declaration": {
835
- "name": "formatDateTimeString",
836
- "module": "src/utils/formatting.ts"
837
- }
838
- }
839
- ]
840
- },
841
- {
842
- "kind": "javascript-module",
843
- "path": "src/utils/index.ts",
844
- "declarations": [],
845
- "exports": [
846
- {
847
- "kind": "js",
848
- "name": "*",
849
- "declaration": {
850
- "name": "*",
851
- "package": "./data-model"
852
- }
853
- },
854
- {
855
- "kind": "js",
856
- "name": "*",
899
+ "name": "ExpressionBuilder",
857
900
  "declaration": {
858
- "name": "*",
859
- "package": "./formatting"
901
+ "name": "ExpressionBuilder",
902
+ "module": "src/main/expression-builder.ts"
860
903
  }
861
904
  },
862
905
  {
863
- "kind": "js",
864
- "name": "*",
906
+ "kind": "custom-element-definition",
907
+ "name": "expression-builder",
865
908
  "declaration": {
866
- "name": "*",
867
- "package": "./misc"
868
- }
869
- }
870
- ]
871
- },
872
- {
873
- "kind": "javascript-module",
874
- "path": "src/utils/misc.ts",
875
- "declarations": [
876
- {
877
- "kind": "function",
878
- "name": "processOptGroups",
879
- "return": {
880
- "type": {
881
- "text": "(T | { optgroup: string | null; xs: T[] })[]"
882
- }
883
- },
884
- "parameters": [
885
- {
886
- "name": "xs",
887
- "type": {
888
- "text": "T[]"
889
- }
890
- }
891
- ]
892
- },
893
- {
894
- "kind": "function",
895
- "name": "applyCustomStyles",
896
- "return": {
897
- "type": {
898
- "text": "void"
899
- }
900
- },
901
- "parameters": [
902
- {
903
- "name": "component",
904
- "type": {
905
- "text": "HTMLElement"
906
- },
907
- "description": "The web component instance"
908
- },
909
- {
910
- "name": "styles",
911
- "type": {
912
- "text": "Styles | undefined | null"
913
- },
914
- "description": "The styles configuration object"
915
- },
916
- {
917
- "name": "styleKey",
918
- "type": {
919
- "text": "keyof NonNullable<Styles['customStyles']>"
920
- },
921
- "description": "The key in styles.customStyles to use for custom styles"
922
- }
923
- ],
924
- "description": "Utility function to add custom styles to a web component's shadow root"
909
+ "name": "ExpressionBuilder",
910
+ "module": "src/main/expression-builder.ts"
911
+ }
925
912
  }
926
- ],
913
+ ]
914
+ },
915
+ {
916
+ "kind": "javascript-module",
917
+ "path": "src/main/index.ts",
918
+ "declarations": [],
927
919
  "exports": [
928
920
  {
929
921
  "kind": "js",
930
- "name": "processOptGroups",
922
+ "name": "*",
931
923
  "declaration": {
932
- "name": "processOptGroups",
933
- "module": "src/utils/misc.ts"
924
+ "name": "*",
925
+ "package": "./expression-builder"
934
926
  }
935
927
  },
936
928
  {
937
929
  "kind": "js",
938
- "name": "applyCustomStyles",
930
+ "name": "*",
939
931
  "declaration": {
940
- "name": "applyCustomStyles",
941
- "module": "src/utils/misc.ts"
932
+ "name": "*",
933
+ "package": "./expression-builder.styles"
934
+ }
935
+ },
936
+ {
937
+ "kind": "js",
938
+ "name": "*",
939
+ "declaration": {
940
+ "name": "*",
941
+ "package": "./expression-builder.template"
942
942
  }
943
943
  }
944
944
  ]
@@ -1150,120 +1150,6 @@
1150
1150
  }
1151
1151
  ]
1152
1152
  },
1153
- {
1154
- "kind": "javascript-module",
1155
- "path": "src/main/rule-field/rule-field.template.ts",
1156
- "declarations": [
1157
- {
1158
- "kind": "variable",
1159
- "name": "template",
1160
- "default": "html<RuleField>`\n ${(context) => {\n const selectTag = context.styles?.customElements?.select || 'select';\n const optionTag = context.styles?.customElements?.option || 'option';\n const optgroupTag = 'optgroup'; // Not supporting custom optgroup for now\n\n return html<RuleField>`\n <${selectTag}\n class=\"form-select\"\n @change=${(x, c) => x.dispatchFieldsChanged(c.event)}\n value=${(x) => x.field?.fieldId}\n >\n <${optionTag} value=\"\">Select a field</${optionTag}>\n ${repeat(\n (x) => x.groupedFieldss,\n html<{ optgroup: string | null; xs: Field[] } | Field, RuleField>`\n ${(groupOrFields) => {\n if ('xs' in groupOrFields) {\n return html<{\n optgroup: string | null;\n xs: Field[];\n }>`\n <${optgroupTag} label=\"${(x) => x.optgroup}\">\n ${repeat(\n (x) => x.xs,\n html<Field>`\n <${optionTag}\n value=\"${(x) => x.fieldId}\"\n ?selected=${(x, c) => x.fieldId === c.parentContext.parent?.field?.fieldId}\n >\n ${(x) => x.label}\n </${optionTag}>\n `,\n )}\n </${optgroupTag}>\n `;\n } else {\n return html<Field>`\n <${optionTag}\n value=\"${(x) => x.fieldId}\"\n ?selected=${(x, c) => x.fieldId === c.parent?.field?.fieldId}\n >\n ${(x) => x.label}\n </${optionTag}>\n `;\n }\n }}\n `,\n )}\n </${selectTag}>\n `;\n }}\n`"
1161
- }
1162
- ],
1163
- "exports": [
1164
- {
1165
- "kind": "js",
1166
- "name": "template",
1167
- "declaration": {
1168
- "name": "template",
1169
- "module": "src/main/rule-field/rule-field.template.ts"
1170
- }
1171
- }
1172
- ]
1173
- },
1174
- {
1175
- "kind": "javascript-module",
1176
- "path": "src/main/rule-field/rule-field.ts",
1177
- "declarations": [
1178
- {
1179
- "kind": "class",
1180
- "description": "",
1181
- "name": "RuleField",
1182
- "members": [
1183
- {
1184
- "kind": "field",
1185
- "name": "fields",
1186
- "type": {
1187
- "text": "Field[]"
1188
- },
1189
- "default": "[]"
1190
- },
1191
- {
1192
- "kind": "field",
1193
- "name": "field",
1194
- "type": {
1195
- "text": "Field"
1196
- }
1197
- },
1198
- {
1199
- "kind": "field",
1200
- "name": "config",
1201
- "type": {
1202
- "text": "Config"
1203
- }
1204
- },
1205
- {
1206
- "kind": "field",
1207
- "name": "styles",
1208
- "type": {
1209
- "text": "Styles | undefined"
1210
- }
1211
- },
1212
- {
1213
- "kind": "field",
1214
- "name": "groupedFieldss",
1215
- "type": {
1216
- "text": "(Field | { optgroup: string | null; xs: Field[] })[]"
1217
- },
1218
- "readonly": true
1219
- },
1220
- {
1221
- "kind": "method",
1222
- "name": "dispatchFieldsChanged",
1223
- "parameters": [
1224
- {
1225
- "name": "event",
1226
- "type": {
1227
- "text": "Event"
1228
- }
1229
- }
1230
- ]
1231
- }
1232
- ],
1233
- "events": [
1234
- {
1235
- "type": {
1236
- "text": "CustomEvent"
1237
- }
1238
- }
1239
- ],
1240
- "superclass": {
1241
- "name": "GenesisElement",
1242
- "package": "@genesislcap/web-core"
1243
- },
1244
- "tagName": "expression-rule-field",
1245
- "customElement": true
1246
- }
1247
- ],
1248
- "exports": [
1249
- {
1250
- "kind": "js",
1251
- "name": "RuleField",
1252
- "declaration": {
1253
- "name": "RuleField",
1254
- "module": "src/main/rule-field/rule-field.ts"
1255
- }
1256
- },
1257
- {
1258
- "kind": "custom-element-definition",
1259
- "name": "expression-rule-field",
1260
- "declaration": {
1261
- "name": "RuleField",
1262
- "module": "src/main/rule-field/rule-field.ts"
1263
- }
1264
- }
1265
- ]
1266
- },
1267
1153
  {
1268
1154
  "kind": "javascript-module",
1269
1155
  "path": "src/main/expression-rule/expression-rule.helpers.ts",
@@ -1529,6 +1415,120 @@
1529
1415
  }
1530
1416
  ]
1531
1417
  },
1418
+ {
1419
+ "kind": "javascript-module",
1420
+ "path": "src/main/rule-field/rule-field.template.ts",
1421
+ "declarations": [
1422
+ {
1423
+ "kind": "variable",
1424
+ "name": "template",
1425
+ "default": "html<RuleField>`\n ${(context) => {\n const selectTag = context.styles?.customElements?.select || 'select';\n const optionTag = context.styles?.customElements?.option || 'option';\n const optgroupTag = 'optgroup'; // Not supporting custom optgroup for now\n\n return html<RuleField>`\n <${selectTag}\n class=\"form-select\"\n @change=${(x, c) => x.dispatchFieldsChanged(c.event)}\n value=${(x) => x.field?.fieldId}\n >\n <${optionTag} value=\"\">Select a field</${optionTag}>\n ${repeat(\n (x) => x.groupedFieldss,\n html<{ optgroup: string | null; xs: Field[] } | Field, RuleField>`\n ${(groupOrFields) => {\n if ('xs' in groupOrFields) {\n return html<{\n optgroup: string | null;\n xs: Field[];\n }>`\n <${optgroupTag} label=\"${(x) => x.optgroup}\">\n ${repeat(\n (x) => x.xs,\n html<Field>`\n <${optionTag}\n value=\"${(x) => x.fieldId}\"\n ?selected=${(x, c) => x.fieldId === c.parentContext.parent?.field?.fieldId}\n >\n ${(x) => x.label}\n </${optionTag}>\n `,\n )}\n </${optgroupTag}>\n `;\n } else {\n return html<Field>`\n <${optionTag}\n value=\"${(x) => x.fieldId}\"\n ?selected=${(x, c) => x.fieldId === c.parent?.field?.fieldId}\n >\n ${(x) => x.label}\n </${optionTag}>\n `;\n }\n }}\n `,\n )}\n </${selectTag}>\n `;\n }}\n`"
1426
+ }
1427
+ ],
1428
+ "exports": [
1429
+ {
1430
+ "kind": "js",
1431
+ "name": "template",
1432
+ "declaration": {
1433
+ "name": "template",
1434
+ "module": "src/main/rule-field/rule-field.template.ts"
1435
+ }
1436
+ }
1437
+ ]
1438
+ },
1439
+ {
1440
+ "kind": "javascript-module",
1441
+ "path": "src/main/rule-field/rule-field.ts",
1442
+ "declarations": [
1443
+ {
1444
+ "kind": "class",
1445
+ "description": "",
1446
+ "name": "RuleField",
1447
+ "members": [
1448
+ {
1449
+ "kind": "field",
1450
+ "name": "fields",
1451
+ "type": {
1452
+ "text": "Field[]"
1453
+ },
1454
+ "default": "[]"
1455
+ },
1456
+ {
1457
+ "kind": "field",
1458
+ "name": "field",
1459
+ "type": {
1460
+ "text": "Field"
1461
+ }
1462
+ },
1463
+ {
1464
+ "kind": "field",
1465
+ "name": "config",
1466
+ "type": {
1467
+ "text": "Config"
1468
+ }
1469
+ },
1470
+ {
1471
+ "kind": "field",
1472
+ "name": "styles",
1473
+ "type": {
1474
+ "text": "Styles | undefined"
1475
+ }
1476
+ },
1477
+ {
1478
+ "kind": "field",
1479
+ "name": "groupedFieldss",
1480
+ "type": {
1481
+ "text": "(Field | { optgroup: string | null; xs: Field[] })[]"
1482
+ },
1483
+ "readonly": true
1484
+ },
1485
+ {
1486
+ "kind": "method",
1487
+ "name": "dispatchFieldsChanged",
1488
+ "parameters": [
1489
+ {
1490
+ "name": "event",
1491
+ "type": {
1492
+ "text": "Event"
1493
+ }
1494
+ }
1495
+ ]
1496
+ }
1497
+ ],
1498
+ "events": [
1499
+ {
1500
+ "type": {
1501
+ "text": "CustomEvent"
1502
+ }
1503
+ }
1504
+ ],
1505
+ "superclass": {
1506
+ "name": "GenesisElement",
1507
+ "package": "@genesislcap/web-core"
1508
+ },
1509
+ "tagName": "expression-rule-field",
1510
+ "customElement": true
1511
+ }
1512
+ ],
1513
+ "exports": [
1514
+ {
1515
+ "kind": "js",
1516
+ "name": "RuleField",
1517
+ "declaration": {
1518
+ "name": "RuleField",
1519
+ "module": "src/main/rule-field/rule-field.ts"
1520
+ }
1521
+ },
1522
+ {
1523
+ "kind": "custom-element-definition",
1524
+ "name": "expression-rule-field",
1525
+ "declaration": {
1526
+ "name": "RuleField",
1527
+ "module": "src/main/rule-field/rule-field.ts"
1528
+ }
1529
+ }
1530
+ ]
1531
+ },
1532
1532
  {
1533
1533
  "kind": "javascript-module",
1534
1534
  "path": "src/main/rule-operator/rule-operator.template.ts",