@genesislcap/expression-builder 14.360.1 → 14.361.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.
Files changed (2) hide show
  1. package/dist/custom-elements.json +531 -531
  2. package/package.json +10 -10
@@ -157,50 +157,11 @@
157
157
  },
158
158
  {
159
159
  "kind": "javascript-module",
160
- "path": "src/main/events.ts",
161
- "declarations": [],
162
- "exports": []
163
- },
164
- {
165
- "kind": "javascript-module",
166
- "path": "src/main/expression-builder.helpers.ts",
160
+ "path": "src/utils/data-model.ts",
167
161
  "declarations": [
168
162
  {
169
163
  "kind": "function",
170
- "name": "findOperateOnGroup",
171
- "return": {
172
- "type": {
173
- "text": ""
174
- }
175
- },
176
- "parameters": [
177
- {
178
- "name": "model",
179
- "type": {
180
- "text": "ModelGroup"
181
- },
182
- "description": "The root group to start searching from"
183
- },
184
- {
185
- "name": "groupId",
186
- "type": {
187
- "text": "string"
188
- },
189
- "description": "The Group ID to find"
190
- },
191
- {
192
- "name": "fn",
193
- "type": {
194
- "text": "ChildrenOperatorFn"
195
- },
196
- "description": "The function to apply to the children of the found group. A *new* object must be created and returned"
197
- }
198
- ],
199
- "description": "Finds a group within a model and applies a function to create a new children"
200
- },
201
- {
202
- "kind": "function",
203
- "name": "addGroupOrRule",
164
+ "name": "groupToModelGroup",
204
165
  "return": {
205
166
  "type": {
206
167
  "text": "ModelGroup"
@@ -208,215 +169,578 @@
208
169
  },
209
170
  "parameters": [
210
171
  {
211
- "name": "model",
212
- "type": {
213
- "text": "ModelGroup"
214
- }
215
- },
216
- {
217
- "name": "parentGroupId",
172
+ "name": "group",
218
173
  "type": {
219
- "text": "string"
174
+ "text": "Group"
220
175
  }
221
176
  },
222
177
  {
223
- "name": "newItem",
178
+ "name": "provider",
224
179
  "type": {
225
- "text": "ModelGroup | ModelRule"
180
+ "text": "MetadataProvider"
226
181
  }
227
182
  }
228
- ]
183
+ ],
184
+ "description": "Converts a Group to a ModelGroup (adds required metadata)"
229
185
  },
230
186
  {
231
187
  "kind": "function",
232
- "name": "deleteGroup",
188
+ "name": "modelGroupToGroup",
233
189
  "return": {
234
190
  "type": {
235
- "text": "ModelGroup"
191
+ "text": ""
236
192
  }
237
193
  },
238
194
  "parameters": [
239
195
  {
240
- "name": "model",
196
+ "name": "modelGroup",
241
197
  "type": {
242
198
  "text": "ModelGroup"
243
- }
244
- },
245
- {
246
- "name": "groupIdToDelete",
247
- "type": {
248
- "text": "string"
249
- }
199
+ },
200
+ "description": "The internal ModelGroup to convert."
250
201
  }
251
- ]
202
+ ],
203
+ "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
252
204
  },
253
205
  {
254
206
  "kind": "function",
255
- "name": "deleteRule",
207
+ "name": "modelRuleToRule",
256
208
  "return": {
257
209
  "type": {
258
- "text": "ModelGroup"
210
+ "text": ""
259
211
  }
260
212
  },
261
213
  "parameters": [
262
214
  {
263
- "name": "model",
264
- "type": {
265
- "text": "ModelGroup"
266
- }
267
- },
268
- {
269
- "name": "ruleIdToDelete",
215
+ "name": "modelRule",
270
216
  "type": {
271
- "text": "string"
272
- }
217
+ "text": "ModelRule"
218
+ },
219
+ "description": "The internal ModelRule to convert."
273
220
  }
274
- ]
221
+ ],
222
+ "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
223
+ }
224
+ ],
225
+ "exports": [
226
+ {
227
+ "kind": "js",
228
+ "name": "groupToModelGroup",
229
+ "declaration": {
230
+ "name": "groupToModelGroup",
231
+ "module": "src/utils/data-model.ts"
232
+ }
275
233
  },
276
234
  {
277
- "kind": "variable",
278
- "name": "ROOT_GROUP",
279
- "type": {
280
- "text": "string"
281
- },
282
- "default": "'group-root'"
235
+ "kind": "js",
236
+ "name": "modelGroupToGroup",
237
+ "declaration": {
238
+ "name": "modelGroupToGroup",
239
+ "module": "src/utils/data-model.ts"
240
+ }
283
241
  },
242
+ {
243
+ "kind": "js",
244
+ "name": "modelRuleToRule",
245
+ "declaration": {
246
+ "name": "modelRuleToRule",
247
+ "module": "src/utils/data-model.ts"
248
+ }
249
+ }
250
+ ]
251
+ },
252
+ {
253
+ "kind": "javascript-module",
254
+ "path": "src/utils/formatting.ts",
255
+ "declarations": [
284
256
  {
285
257
  "kind": "function",
286
- "name": "updateGroupData",
287
- "return": {
288
- "type": {
289
- "text": "ModelGroup"
290
- }
291
- },
258
+ "name": "formatDateString",
292
259
  "parameters": [
293
260
  {
294
- "name": "model",
295
- "type": {
296
- "text": "ModelGroup"
297
- }
298
- },
299
- {
300
- "name": "groupIdToUpdate",
301
- "type": {
302
- "text": "string"
303
- }
304
- },
305
- {
306
- "name": "newData",
261
+ "name": "date",
307
262
  "type": {
308
- "text": "EventsDetailMap[Events.UpdateGroup]['newData']"
263
+ "text": "Date"
309
264
  }
310
265
  }
311
- ]
266
+ ],
267
+ "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`.\nUses UTC methods to ensure consistent output regardless of timezone.\n\nUsed to convert a javascript date object into the required string format expected by the expression builder."
312
268
  },
313
269
  {
314
270
  "kind": "function",
315
- "name": "updateRuleData",
316
- "return": {
317
- "type": {
318
- "text": "ModelGroup"
319
- }
320
- },
271
+ "name": "formatDateTimeString",
321
272
  "parameters": [
322
273
  {
323
- "name": "model",
324
- "type": {
325
- "text": "ModelGroup"
326
- }
327
- },
328
- {
329
- "name": "ruleIdToUpdate",
330
- "type": {
331
- "text": "string"
332
- }
333
- },
334
- {
335
- "name": "newData",
274
+ "name": "date",
336
275
  "type": {
337
- "text": "EventsDetailMap[Events.UpdateRule]['newData']"
276
+ "text": "Date"
338
277
  }
339
278
  }
340
- ]
279
+ ],
280
+ "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`.\nUses UTC methods to ensure consistent output regardless of timezone.\n\nUsed to convert a javascript date object into the required string format expected by the expression builder."
341
281
  }
342
282
  ],
343
283
  "exports": [
344
284
  {
345
285
  "kind": "js",
346
- "name": "findOperateOnGroup",
347
- "declaration": {
348
- "name": "findOperateOnGroup",
349
- "module": "src/main/expression-builder.helpers.ts"
350
- }
351
- },
352
- {
353
- "kind": "js",
354
- "name": "addGroupOrRule",
355
- "declaration": {
356
- "name": "addGroupOrRule",
357
- "module": "src/main/expression-builder.helpers.ts"
358
- }
359
- },
360
- {
361
- "kind": "js",
362
- "name": "deleteGroup",
286
+ "name": "formatDateString",
363
287
  "declaration": {
364
- "name": "deleteGroup",
365
- "module": "src/main/expression-builder.helpers.ts"
288
+ "name": "formatDateString",
289
+ "module": "src/utils/formatting.ts"
366
290
  }
367
291
  },
368
292
  {
369
293
  "kind": "js",
370
- "name": "deleteRule",
294
+ "name": "formatDateTimeString",
371
295
  "declaration": {
372
- "name": "deleteRule",
373
- "module": "src/main/expression-builder.helpers.ts"
296
+ "name": "formatDateTimeString",
297
+ "module": "src/utils/formatting.ts"
374
298
  }
375
- },
299
+ }
300
+ ]
301
+ },
302
+ {
303
+ "kind": "javascript-module",
304
+ "path": "src/utils/index.ts",
305
+ "declarations": [],
306
+ "exports": [
376
307
  {
377
308
  "kind": "js",
378
- "name": "ROOT_GROUP",
309
+ "name": "*",
379
310
  "declaration": {
380
- "name": "ROOT_GROUP",
381
- "module": "src/main/expression-builder.helpers.ts"
311
+ "name": "*",
312
+ "package": "./data-model"
382
313
  }
383
314
  },
384
315
  {
385
316
  "kind": "js",
386
- "name": "updateGroupData",
317
+ "name": "*",
387
318
  "declaration": {
388
- "name": "updateGroupData",
389
- "module": "src/main/expression-builder.helpers.ts"
319
+ "name": "*",
320
+ "package": "./formatting"
390
321
  }
391
322
  },
392
323
  {
393
324
  "kind": "js",
394
- "name": "updateRuleData",
325
+ "name": "*",
395
326
  "declaration": {
396
- "name": "updateRuleData",
397
- "module": "src/main/expression-builder.helpers.ts"
327
+ "name": "*",
328
+ "package": "./misc"
398
329
  }
399
330
  }
400
331
  ]
401
332
  },
402
333
  {
403
334
  "kind": "javascript-module",
404
- "path": "src/main/expression-builder.styles.ts",
335
+ "path": "src/utils/misc.ts",
405
336
  "declarations": [
406
337
  {
407
- "kind": "variable",
408
- "name": "styles",
409
- "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`"
410
- }
411
- ],
412
- "exports": [
413
- {
414
- "kind": "js",
415
- "name": "styles",
416
- "declaration": {
417
- "name": "styles",
418
- "module": "src/main/expression-builder.styles.ts"
419
- }
338
+ "kind": "function",
339
+ "name": "getFieldInput",
340
+ "parameters": [
341
+ {
342
+ "name": "context",
343
+ "type": {
344
+ "text": "RuleValue | ModelRule"
345
+ }
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "kind": "function",
351
+ "name": "getFieldType",
352
+ "parameters": [
353
+ {
354
+ "name": "context",
355
+ "type": {
356
+ "text": "RuleValue | ModelRule"
357
+ }
358
+ }
359
+ ]
360
+ },
361
+ {
362
+ "kind": "function",
363
+ "name": "processOptGroups",
364
+ "return": {
365
+ "type": {
366
+ "text": "(T | { optgroup: string | null; xs: T[] })[]"
367
+ }
368
+ },
369
+ "parameters": [
370
+ {
371
+ "name": "xs",
372
+ "type": {
373
+ "text": "T[]"
374
+ }
375
+ }
376
+ ]
377
+ },
378
+ {
379
+ "kind": "function",
380
+ "name": "applyCustomStyles",
381
+ "return": {
382
+ "type": {
383
+ "text": "void"
384
+ }
385
+ },
386
+ "parameters": [
387
+ {
388
+ "name": "component",
389
+ "type": {
390
+ "text": "HTMLElement"
391
+ },
392
+ "description": "The web component instance"
393
+ },
394
+ {
395
+ "name": "styles",
396
+ "type": {
397
+ "text": "Styles | undefined | null"
398
+ },
399
+ "description": "The styles configuration object"
400
+ },
401
+ {
402
+ "name": "styleKey",
403
+ "type": {
404
+ "text": "keyof NonNullable<Styles['customStyles']>"
405
+ },
406
+ "description": "The key in styles.customStyles to use for custom styles"
407
+ }
408
+ ],
409
+ "description": "Utility function to add custom styles to a web component's shadow root"
410
+ }
411
+ ],
412
+ "exports": [
413
+ {
414
+ "kind": "js",
415
+ "name": "getFieldInput",
416
+ "declaration": {
417
+ "name": "getFieldInput",
418
+ "module": "src/utils/misc.ts"
419
+ }
420
+ },
421
+ {
422
+ "kind": "js",
423
+ "name": "getFieldType",
424
+ "declaration": {
425
+ "name": "getFieldType",
426
+ "module": "src/utils/misc.ts"
427
+ }
428
+ },
429
+ {
430
+ "kind": "js",
431
+ "name": "processOptGroups",
432
+ "declaration": {
433
+ "name": "processOptGroups",
434
+ "module": "src/utils/misc.ts"
435
+ }
436
+ },
437
+ {
438
+ "kind": "js",
439
+ "name": "applyCustomStyles",
440
+ "declaration": {
441
+ "name": "applyCustomStyles",
442
+ "module": "src/utils/misc.ts"
443
+ }
444
+ }
445
+ ]
446
+ },
447
+ {
448
+ "kind": "javascript-module",
449
+ "path": "src/types/index.ts",
450
+ "declarations": [],
451
+ "exports": [
452
+ {
453
+ "kind": "js",
454
+ "name": "*",
455
+ "declaration": {
456
+ "name": "*",
457
+ "package": "./public.types"
458
+ }
459
+ },
460
+ {
461
+ "kind": "js",
462
+ "name": "*",
463
+ "declaration": {
464
+ "name": "*",
465
+ "package": "./private.types"
466
+ }
467
+ }
468
+ ]
469
+ },
470
+ {
471
+ "kind": "javascript-module",
472
+ "path": "src/types/private.types.ts",
473
+ "declarations": [],
474
+ "exports": []
475
+ },
476
+ {
477
+ "kind": "javascript-module",
478
+ "path": "src/types/public.types.ts",
479
+ "declarations": [],
480
+ "exports": []
481
+ },
482
+ {
483
+ "kind": "javascript-module",
484
+ "path": "src/main/events.ts",
485
+ "declarations": [],
486
+ "exports": []
487
+ },
488
+ {
489
+ "kind": "javascript-module",
490
+ "path": "src/main/expression-builder.helpers.ts",
491
+ "declarations": [
492
+ {
493
+ "kind": "function",
494
+ "name": "findOperateOnGroup",
495
+ "return": {
496
+ "type": {
497
+ "text": ""
498
+ }
499
+ },
500
+ "parameters": [
501
+ {
502
+ "name": "model",
503
+ "type": {
504
+ "text": "ModelGroup"
505
+ },
506
+ "description": "The root group to start searching from"
507
+ },
508
+ {
509
+ "name": "groupId",
510
+ "type": {
511
+ "text": "string"
512
+ },
513
+ "description": "The Group ID to find"
514
+ },
515
+ {
516
+ "name": "fn",
517
+ "type": {
518
+ "text": "ChildrenOperatorFn"
519
+ },
520
+ "description": "The function to apply to the children of the found group. A *new* object must be created and returned"
521
+ }
522
+ ],
523
+ "description": "Finds a group within a model and applies a function to create a new children"
524
+ },
525
+ {
526
+ "kind": "function",
527
+ "name": "addGroupOrRule",
528
+ "return": {
529
+ "type": {
530
+ "text": "ModelGroup"
531
+ }
532
+ },
533
+ "parameters": [
534
+ {
535
+ "name": "model",
536
+ "type": {
537
+ "text": "ModelGroup"
538
+ }
539
+ },
540
+ {
541
+ "name": "parentGroupId",
542
+ "type": {
543
+ "text": "string"
544
+ }
545
+ },
546
+ {
547
+ "name": "newItem",
548
+ "type": {
549
+ "text": "ModelGroup | ModelRule"
550
+ }
551
+ }
552
+ ]
553
+ },
554
+ {
555
+ "kind": "function",
556
+ "name": "deleteGroup",
557
+ "return": {
558
+ "type": {
559
+ "text": "ModelGroup"
560
+ }
561
+ },
562
+ "parameters": [
563
+ {
564
+ "name": "model",
565
+ "type": {
566
+ "text": "ModelGroup"
567
+ }
568
+ },
569
+ {
570
+ "name": "groupIdToDelete",
571
+ "type": {
572
+ "text": "string"
573
+ }
574
+ }
575
+ ]
576
+ },
577
+ {
578
+ "kind": "function",
579
+ "name": "deleteRule",
580
+ "return": {
581
+ "type": {
582
+ "text": "ModelGroup"
583
+ }
584
+ },
585
+ "parameters": [
586
+ {
587
+ "name": "model",
588
+ "type": {
589
+ "text": "ModelGroup"
590
+ }
591
+ },
592
+ {
593
+ "name": "ruleIdToDelete",
594
+ "type": {
595
+ "text": "string"
596
+ }
597
+ }
598
+ ]
599
+ },
600
+ {
601
+ "kind": "variable",
602
+ "name": "ROOT_GROUP",
603
+ "type": {
604
+ "text": "string"
605
+ },
606
+ "default": "'group-root'"
607
+ },
608
+ {
609
+ "kind": "function",
610
+ "name": "updateGroupData",
611
+ "return": {
612
+ "type": {
613
+ "text": "ModelGroup"
614
+ }
615
+ },
616
+ "parameters": [
617
+ {
618
+ "name": "model",
619
+ "type": {
620
+ "text": "ModelGroup"
621
+ }
622
+ },
623
+ {
624
+ "name": "groupIdToUpdate",
625
+ "type": {
626
+ "text": "string"
627
+ }
628
+ },
629
+ {
630
+ "name": "newData",
631
+ "type": {
632
+ "text": "EventsDetailMap[Events.UpdateGroup]['newData']"
633
+ }
634
+ }
635
+ ]
636
+ },
637
+ {
638
+ "kind": "function",
639
+ "name": "updateRuleData",
640
+ "return": {
641
+ "type": {
642
+ "text": "ModelGroup"
643
+ }
644
+ },
645
+ "parameters": [
646
+ {
647
+ "name": "model",
648
+ "type": {
649
+ "text": "ModelGroup"
650
+ }
651
+ },
652
+ {
653
+ "name": "ruleIdToUpdate",
654
+ "type": {
655
+ "text": "string"
656
+ }
657
+ },
658
+ {
659
+ "name": "newData",
660
+ "type": {
661
+ "text": "EventsDetailMap[Events.UpdateRule]['newData']"
662
+ }
663
+ }
664
+ ]
665
+ }
666
+ ],
667
+ "exports": [
668
+ {
669
+ "kind": "js",
670
+ "name": "findOperateOnGroup",
671
+ "declaration": {
672
+ "name": "findOperateOnGroup",
673
+ "module": "src/main/expression-builder.helpers.ts"
674
+ }
675
+ },
676
+ {
677
+ "kind": "js",
678
+ "name": "addGroupOrRule",
679
+ "declaration": {
680
+ "name": "addGroupOrRule",
681
+ "module": "src/main/expression-builder.helpers.ts"
682
+ }
683
+ },
684
+ {
685
+ "kind": "js",
686
+ "name": "deleteGroup",
687
+ "declaration": {
688
+ "name": "deleteGroup",
689
+ "module": "src/main/expression-builder.helpers.ts"
690
+ }
691
+ },
692
+ {
693
+ "kind": "js",
694
+ "name": "deleteRule",
695
+ "declaration": {
696
+ "name": "deleteRule",
697
+ "module": "src/main/expression-builder.helpers.ts"
698
+ }
699
+ },
700
+ {
701
+ "kind": "js",
702
+ "name": "ROOT_GROUP",
703
+ "declaration": {
704
+ "name": "ROOT_GROUP",
705
+ "module": "src/main/expression-builder.helpers.ts"
706
+ }
707
+ },
708
+ {
709
+ "kind": "js",
710
+ "name": "updateGroupData",
711
+ "declaration": {
712
+ "name": "updateGroupData",
713
+ "module": "src/main/expression-builder.helpers.ts"
714
+ }
715
+ },
716
+ {
717
+ "kind": "js",
718
+ "name": "updateRuleData",
719
+ "declaration": {
720
+ "name": "updateRuleData",
721
+ "module": "src/main/expression-builder.helpers.ts"
722
+ }
723
+ }
724
+ ]
725
+ },
726
+ {
727
+ "kind": "javascript-module",
728
+ "path": "src/main/expression-builder.styles.ts",
729
+ "declarations": [
730
+ {
731
+ "kind": "variable",
732
+ "name": "styles",
733
+ "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`"
734
+ }
735
+ ],
736
+ "exports": [
737
+ {
738
+ "kind": "js",
739
+ "name": "styles",
740
+ "declaration": {
741
+ "name": "styles",
742
+ "module": "src/main/expression-builder.styles.ts"
743
+ }
420
744
  }
421
745
  ]
422
746
  },
@@ -616,241 +940,66 @@
616
940
  "type": {
617
941
  "text": "CustomEvent<EventsDetailMap[Events.UpdateGroup]>"
618
942
  }
619
- }
620
- ]
621
- },
622
- {
623
- "kind": "field",
624
- "name": "handleUpdateRuleData",
625
- "privacy": "private"
626
- },
627
- {
628
- "kind": "method",
629
- "name": "_handleUpdateRuleData",
630
- "privacy": "private",
631
- "parameters": [
632
- {
633
- "name": "event",
634
- "type": {
635
- "text": "CustomEvent<EventsDetailMap[Events.UpdateRule]>"
636
- }
637
- }
638
- ]
639
- }
640
- ],
641
- "events": [
642
- {
643
- "name": "change",
644
- "type": {
645
- "text": "CustomEvent"
646
- }
647
- }
648
- ],
649
- "superclass": {
650
- "name": "GenesisElement",
651
- "package": "@genesislcap/web-core"
652
- },
653
- "tagName": "expression-builder",
654
- "customElement": true
655
- }
656
- ],
657
- "exports": [
658
- {
659
- "kind": "js",
660
- "name": "ExpressionBuilder",
661
- "declaration": {
662
- "name": "ExpressionBuilder",
663
- "module": "src/main/expression-builder.ts"
664
- }
665
- },
666
- {
667
- "kind": "custom-element-definition",
668
- "name": "expression-builder",
669
- "declaration": {
670
- "name": "ExpressionBuilder",
671
- "module": "src/main/expression-builder.ts"
672
- }
673
- }
674
- ]
675
- },
676
- {
677
- "kind": "javascript-module",
678
- "path": "src/main/index.ts",
679
- "declarations": [],
680
- "exports": [
681
- {
682
- "kind": "js",
683
- "name": "*",
684
- "declaration": {
685
- "name": "*",
686
- "package": "./expression-builder"
687
- }
688
- },
689
- {
690
- "kind": "js",
691
- "name": "*",
692
- "declaration": {
693
- "name": "*",
694
- "package": "./expression-builder.styles"
695
- }
696
- },
697
- {
698
- "kind": "js",
699
- "name": "*",
700
- "declaration": {
701
- "name": "*",
702
- "package": "./expression-builder.template"
703
- }
704
- }
705
- ]
706
- },
707
- {
708
- "kind": "javascript-module",
709
- "path": "src/utils/data-model.ts",
710
- "declarations": [
711
- {
712
- "kind": "function",
713
- "name": "groupToModelGroup",
714
- "return": {
715
- "type": {
716
- "text": "ModelGroup"
717
- }
718
- },
719
- "parameters": [
720
- {
721
- "name": "group",
722
- "type": {
723
- "text": "Group"
724
- }
725
- },
726
- {
727
- "name": "provider",
728
- "type": {
729
- "text": "MetadataProvider"
730
- }
731
- }
732
- ],
733
- "description": "Converts a Group to a ModelGroup (adds required metadata)"
734
- },
735
- {
736
- "kind": "function",
737
- "name": "modelGroupToGroup",
738
- "return": {
739
- "type": {
740
- "text": ""
741
- }
742
- },
743
- "parameters": [
744
- {
745
- "name": "modelGroup",
746
- "type": {
747
- "text": "ModelGroup"
748
- },
749
- "description": "The internal ModelGroup to convert."
750
- }
751
- ],
752
- "description": "Converts a ModelGroup (internal data structure) to a public Group structure.\nThis function recursively processes the rules within the group."
753
- },
754
- {
755
- "kind": "function",
756
- "name": "modelRuleToRule",
757
- "return": {
758
- "type": {
759
- "text": ""
760
- }
761
- },
762
- "parameters": [
943
+ }
944
+ ]
945
+ },
763
946
  {
764
- "name": "modelRule",
765
- "type": {
766
- "text": "ModelRule"
767
- },
768
- "description": "The internal ModelRule to convert."
769
- }
770
- ],
771
- "description": "Converts a ModelRule (internal data structure) to a public Rule structure."
772
- }
773
- ],
774
- "exports": [
775
- {
776
- "kind": "js",
777
- "name": "groupToModelGroup",
778
- "declaration": {
779
- "name": "groupToModelGroup",
780
- "module": "src/utils/data-model.ts"
781
- }
782
- },
783
- {
784
- "kind": "js",
785
- "name": "modelGroupToGroup",
786
- "declaration": {
787
- "name": "modelGroupToGroup",
788
- "module": "src/utils/data-model.ts"
789
- }
790
- },
791
- {
792
- "kind": "js",
793
- "name": "modelRuleToRule",
794
- "declaration": {
795
- "name": "modelRuleToRule",
796
- "module": "src/utils/data-model.ts"
797
- }
798
- }
799
- ]
800
- },
801
- {
802
- "kind": "javascript-module",
803
- "path": "src/utils/formatting.ts",
804
- "declarations": [
805
- {
806
- "kind": "function",
807
- "name": "formatDateString",
808
- "parameters": [
947
+ "kind": "field",
948
+ "name": "handleUpdateRuleData",
949
+ "privacy": "private"
950
+ },
809
951
  {
810
- "name": "date",
811
- "type": {
812
- "text": "Date"
813
- }
952
+ "kind": "method",
953
+ "name": "_handleUpdateRuleData",
954
+ "privacy": "private",
955
+ "parameters": [
956
+ {
957
+ "name": "event",
958
+ "type": {
959
+ "text": "CustomEvent<EventsDetailMap[Events.UpdateRule]>"
960
+ }
961
+ }
962
+ ]
814
963
  }
815
964
  ],
816
- "description": "Gets the string representation from a `Date` which is the format a `date` input uses.\n`yyyy-mm-dd`.\nUses UTC methods to ensure consistent output regardless of timezone.\n\nUsed to convert a javascript date object into the required string format expected by the expression builder."
817
- },
818
- {
819
- "kind": "function",
820
- "name": "formatDateTimeString",
821
- "parameters": [
965
+ "events": [
822
966
  {
823
- "name": "date",
967
+ "name": "change",
824
968
  "type": {
825
- "text": "Date"
969
+ "text": "CustomEvent"
826
970
  }
827
971
  }
828
972
  ],
829
- "description": "Gets the string representation from a `Date` which is the format a `datetime-local` input uses.\n`yyyy-mm-ddThh:mm:ss`.\nUses UTC methods to ensure consistent output regardless of timezone.\n\nUsed to convert a javascript date object into the required string format expected by the expression builder."
973
+ "superclass": {
974
+ "name": "GenesisElement",
975
+ "package": "@genesislcap/web-core"
976
+ },
977
+ "tagName": "expression-builder",
978
+ "customElement": true
830
979
  }
831
980
  ],
832
981
  "exports": [
833
982
  {
834
983
  "kind": "js",
835
- "name": "formatDateString",
984
+ "name": "ExpressionBuilder",
836
985
  "declaration": {
837
- "name": "formatDateString",
838
- "module": "src/utils/formatting.ts"
986
+ "name": "ExpressionBuilder",
987
+ "module": "src/main/expression-builder.ts"
839
988
  }
840
989
  },
841
990
  {
842
- "kind": "js",
843
- "name": "formatDateTimeString",
991
+ "kind": "custom-element-definition",
992
+ "name": "expression-builder",
844
993
  "declaration": {
845
- "name": "formatDateTimeString",
846
- "module": "src/utils/formatting.ts"
994
+ "name": "ExpressionBuilder",
995
+ "module": "src/main/expression-builder.ts"
847
996
  }
848
997
  }
849
998
  ]
850
999
  },
851
1000
  {
852
1001
  "kind": "javascript-module",
853
- "path": "src/utils/index.ts",
1002
+ "path": "src/main/index.ts",
854
1003
  "declarations": [],
855
1004
  "exports": [
856
1005
  {
@@ -858,152 +1007,15 @@
858
1007
  "name": "*",
859
1008
  "declaration": {
860
1009
  "name": "*",
861
- "package": "./data-model"
862
- }
863
- },
864
- {
865
- "kind": "js",
866
- "name": "*",
867
- "declaration": {
868
- "name": "*",
869
- "package": "./formatting"
870
- }
871
- },
872
- {
873
- "kind": "js",
874
- "name": "*",
875
- "declaration": {
876
- "name": "*",
877
- "package": "./misc"
878
- }
879
- }
880
- ]
881
- },
882
- {
883
- "kind": "javascript-module",
884
- "path": "src/utils/misc.ts",
885
- "declarations": [
886
- {
887
- "kind": "function",
888
- "name": "getFieldInput",
889
- "parameters": [
890
- {
891
- "name": "context",
892
- "type": {
893
- "text": "RuleValue | ModelRule"
894
- }
895
- }
896
- ]
897
- },
898
- {
899
- "kind": "function",
900
- "name": "getFieldType",
901
- "parameters": [
902
- {
903
- "name": "context",
904
- "type": {
905
- "text": "RuleValue | ModelRule"
906
- }
907
- }
908
- ]
909
- },
910
- {
911
- "kind": "function",
912
- "name": "processOptGroups",
913
- "return": {
914
- "type": {
915
- "text": "(T | { optgroup: string | null; xs: T[] })[]"
916
- }
917
- },
918
- "parameters": [
919
- {
920
- "name": "xs",
921
- "type": {
922
- "text": "T[]"
923
- }
924
- }
925
- ]
926
- },
927
- {
928
- "kind": "function",
929
- "name": "applyCustomStyles",
930
- "return": {
931
- "type": {
932
- "text": "void"
933
- }
934
- },
935
- "parameters": [
936
- {
937
- "name": "component",
938
- "type": {
939
- "text": "HTMLElement"
940
- },
941
- "description": "The web component instance"
942
- },
943
- {
944
- "name": "styles",
945
- "type": {
946
- "text": "Styles | undefined | null"
947
- },
948
- "description": "The styles configuration object"
949
- },
950
- {
951
- "name": "styleKey",
952
- "type": {
953
- "text": "keyof NonNullable<Styles['customStyles']>"
954
- },
955
- "description": "The key in styles.customStyles to use for custom styles"
956
- }
957
- ],
958
- "description": "Utility function to add custom styles to a web component's shadow root"
959
- }
960
- ],
961
- "exports": [
962
- {
963
- "kind": "js",
964
- "name": "getFieldInput",
965
- "declaration": {
966
- "name": "getFieldInput",
967
- "module": "src/utils/misc.ts"
968
- }
969
- },
970
- {
971
- "kind": "js",
972
- "name": "getFieldType",
973
- "declaration": {
974
- "name": "getFieldType",
975
- "module": "src/utils/misc.ts"
976
- }
977
- },
978
- {
979
- "kind": "js",
980
- "name": "processOptGroups",
981
- "declaration": {
982
- "name": "processOptGroups",
983
- "module": "src/utils/misc.ts"
1010
+ "package": "./expression-builder"
984
1011
  }
985
1012
  },
986
- {
987
- "kind": "js",
988
- "name": "applyCustomStyles",
989
- "declaration": {
990
- "name": "applyCustomStyles",
991
- "module": "src/utils/misc.ts"
992
- }
993
- }
994
- ]
995
- },
996
- {
997
- "kind": "javascript-module",
998
- "path": "src/types/index.ts",
999
- "declarations": [],
1000
- "exports": [
1001
1013
  {
1002
1014
  "kind": "js",
1003
1015
  "name": "*",
1004
1016
  "declaration": {
1005
1017
  "name": "*",
1006
- "package": "./public.types"
1018
+ "package": "./expression-builder.styles"
1007
1019
  }
1008
1020
  },
1009
1021
  {
@@ -1011,23 +1023,11 @@
1011
1023
  "name": "*",
1012
1024
  "declaration": {
1013
1025
  "name": "*",
1014
- "package": "./private.types"
1026
+ "package": "./expression-builder.template"
1015
1027
  }
1016
1028
  }
1017
1029
  ]
1018
1030
  },
1019
- {
1020
- "kind": "javascript-module",
1021
- "path": "src/types/private.types.ts",
1022
- "declarations": [],
1023
- "exports": []
1024
- },
1025
- {
1026
- "kind": "javascript-module",
1027
- "path": "src/types/public.types.ts",
1028
- "declarations": [],
1029
- "exports": []
1030
- },
1031
1031
  {
1032
1032
  "kind": "javascript-module",
1033
1033
  "path": "src/main/expression-group/expression-group.styles.ts",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/expression-builder",
3
3
  "description": "Genesis Foundation Expression Builder",
4
- "version": "14.360.1",
4
+ "version": "14.361.0",
5
5
  "license": "SEE LICENSE IN license.txt",
6
6
  "main": "dist/esm/index.js",
7
7
  "types": "dist/expression-builder.d.ts",
@@ -36,16 +36,16 @@
36
36
  }
37
37
  },
38
38
  "devDependencies": {
39
- "@genesislcap/foundation-testing": "14.360.1",
40
- "@genesislcap/genx": "14.360.1",
41
- "@genesislcap/rollup-builder": "14.360.1",
42
- "@genesislcap/ts-builder": "14.360.1",
43
- "@genesislcap/uvu-playwright-builder": "14.360.1",
44
- "@genesislcap/vite-builder": "14.360.1",
45
- "@genesislcap/webpack-builder": "14.360.1"
39
+ "@genesislcap/foundation-testing": "14.361.0",
40
+ "@genesislcap/genx": "14.361.0",
41
+ "@genesislcap/rollup-builder": "14.361.0",
42
+ "@genesislcap/ts-builder": "14.361.0",
43
+ "@genesislcap/uvu-playwright-builder": "14.361.0",
44
+ "@genesislcap/vite-builder": "14.361.0",
45
+ "@genesislcap/webpack-builder": "14.361.0"
46
46
  },
47
47
  "dependencies": {
48
- "@genesislcap/web-core": "14.360.1",
48
+ "@genesislcap/web-core": "14.361.0",
49
49
  "rfdc": "1.4.1"
50
50
  },
51
51
  "repository": {
@@ -57,5 +57,5 @@
57
57
  "access": "public"
58
58
  },
59
59
  "customElements": "dist/custom-elements.json",
60
- "gitHead": "37b9ec76995d85328d95c330f24e1033ef45f863"
60
+ "gitHead": "d90c8400d0f62376f4565db20ddd1f1d496c86a5"
61
61
  }