@milaboratories/uikit 2.6.1 → 2.6.3

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 (215) hide show
  1. package/.turbo/turbo-build.log +143 -143
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +14 -0
  4. package/dist/base/BtnBase.vue.js +18 -18
  5. package/dist/base/BtnBase.vue.js.map +1 -1
  6. package/dist/components/ContextProvider.vue.js.map +1 -1
  7. package/dist/components/DataTable/BaseCellComponent.vue.js +20 -20
  8. package/dist/components/DataTable/BaseCellComponent.vue.js.map +1 -1
  9. package/dist/components/DataTable/ColumnCaret.vue.js +6 -6
  10. package/dist/components/DataTable/ColumnCaret.vue.js.map +1 -1
  11. package/dist/components/DataTable/ColumnsCommandMenu.vue.js.map +1 -1
  12. package/dist/components/DataTable/RowsCommandMenu.vue.js.map +1 -1
  13. package/dist/components/DataTable/TScroll.vue.js +12 -12
  14. package/dist/components/DataTable/TScroll.vue.js.map +1 -1
  15. package/dist/components/DataTable/TableComponent.vue.js +5 -3
  16. package/dist/components/DataTable/TableComponent.vue.js.map +1 -1
  17. package/dist/components/DataTable/TdCell.vue.js +36 -36
  18. package/dist/components/DataTable/TdCell.vue.js.map +1 -1
  19. package/dist/components/DataTable/ThCell.vue.js +27 -27
  20. package/dist/components/DataTable/ThCell.vue.js.map +1 -1
  21. package/dist/components/DataTable/TrBody.vue.js +12 -12
  22. package/dist/components/DataTable/TrBody.vue.js.map +1 -1
  23. package/dist/components/DataTable/TrHead.vue.js.map +1 -1
  24. package/dist/components/DataTable/assets/TableIcon.vue.js +2 -2
  25. package/dist/components/DataTable/assets/TableIcon.vue.js.map +1 -1
  26. package/dist/components/DropdownListItem.vue.js +18 -18
  27. package/dist/components/DropdownListItem.vue.js.map +1 -1
  28. package/dist/components/HScroll.vue.js.map +1 -1
  29. package/dist/components/InputRange.vue.js.map +1 -1
  30. package/dist/components/LongText.vue.js +1 -1
  31. package/dist/components/LongText.vue.js.map +1 -1
  32. package/dist/components/LongText.vue3.js +1 -1
  33. package/dist/components/PlAccordion/ExpandTransition.vue.js.map +1 -1
  34. package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -1
  35. package/dist/components/PlAccordion/ExpandTransition.vue3.js +1 -1
  36. package/dist/components/PlAccordion/PlAccordion.vue.js.map +1 -1
  37. package/dist/components/PlAccordion/PlAccordionSection.vue2.js +21 -21
  38. package/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
  39. package/dist/components/PlAlert/PlAlert.vue.js +23 -23
  40. package/dist/components/PlAlert/PlAlert.vue.js.map +1 -1
  41. package/dist/components/PlAutocomplete/PlAutocomplete.vue.d.ts +4 -0
  42. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js +112 -106
  43. package/dist/components/PlAutocomplete/PlAutocomplete.vue.js.map +1 -1
  44. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts +4 -0
  45. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js +100 -94
  46. package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js.map +1 -1
  47. package/dist/components/PlBtnAccent/PlBtnAccent.vue.js.map +1 -1
  48. package/dist/components/PlBtnDanger/PlBtnDanger.vue.js.map +1 -1
  49. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js +21 -21
  50. package/dist/components/PlBtnGhost/PlBtnGhost.vue.js.map +1 -1
  51. package/dist/components/PlBtnGroup/PlBtnGroup.vue.js +34 -34
  52. package/dist/components/PlBtnGroup/PlBtnGroup.vue.js.map +1 -1
  53. package/dist/components/PlBtnLink/PlBtnLink.vue.js +12 -12
  54. package/dist/components/PlBtnLink/PlBtnLink.vue.js.map +1 -1
  55. package/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js.map +1 -1
  56. package/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js.map +1 -1
  57. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js +31 -31
  58. package/dist/components/PlBtnSplit/PlBtnSplit.vue.js.map +1 -1
  59. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js +18 -18
  60. package/dist/components/PlChartHistogram/PlChartHistogram.vue2.js.map +1 -1
  61. package/dist/components/PlChartStackedBar/Legends.vue2.js.map +1 -1
  62. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js +15 -15
  63. package/dist/components/PlChartStackedBar/PlChartStackedBar.vue2.js.map +1 -1
  64. package/dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue2.js.map +1 -1
  65. package/dist/components/PlChartStackedBar/StackedRow.vue2.js.map +1 -1
  66. package/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js.map +1 -1
  67. package/dist/components/PlCheckbox/PlCheckbox.vue.js +13 -13
  68. package/dist/components/PlCheckbox/PlCheckbox.vue.js.map +1 -1
  69. package/dist/components/PlCheckbox/PlCheckboxBase.vue.js +6 -6
  70. package/dist/components/PlCheckbox/PlCheckboxBase.vue.js.map +1 -1
  71. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js +28 -28
  72. package/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js.map +1 -1
  73. package/dist/components/PlChip/PlChip.vue.js +20 -20
  74. package/dist/components/PlChip/PlChip.vue.js.map +1 -1
  75. package/dist/components/PlClipboard/PlClipboard.vue2.js.map +1 -1
  76. package/dist/components/PlConfirmDialog.vue.js +14 -14
  77. package/dist/components/PlConfirmDialog.vue.js.map +1 -1
  78. package/dist/components/PlDialogModal/PlDialogModal.vue.js +30 -30
  79. package/dist/components/PlDialogModal/PlDialogModal.vue.js.map +1 -1
  80. package/dist/components/PlDropdown/OptionList.vue.js +40 -40
  81. package/dist/components/PlDropdown/OptionList.vue.js.map +1 -1
  82. package/dist/components/PlDropdown/PlDropdown.vue.d.ts +8 -0
  83. package/dist/components/PlDropdown/PlDropdown.vue.js +102 -95
  84. package/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
  85. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js +95 -93
  86. package/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js.map +1 -1
  87. package/dist/components/PlDropdownLine/PlDropdownLine.vue.d.ts +1 -1
  88. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js +4 -4
  89. package/dist/components/PlDropdownLine/PlDropdownLine.vue.js.map +1 -1
  90. package/dist/components/PlDropdownLine/ResizableInput.vue.js +12 -12
  91. package/dist/components/PlDropdownLine/ResizableInput.vue.js.map +1 -1
  92. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.d.ts +4 -0
  93. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js +88 -82
  94. package/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js.map +1 -1
  95. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.d.ts +1 -1
  96. package/dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue.js.map +1 -1
  97. package/dist/components/PlDropdownRef/PlDropdownRef.vue.js +11 -11
  98. package/dist/components/PlDropdownRef/PlDropdownRef.vue.js.map +1 -1
  99. package/dist/components/PlEditableTitle/PlEditableTitle.vue.d.ts +1 -1
  100. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js +36 -36
  101. package/dist/components/PlEditableTitle/PlEditableTitle.vue.js.map +1 -1
  102. package/dist/components/PlElementList/PlElementList.vue.d.ts +20 -0
  103. package/dist/components/PlElementList/PlElementList.vue2.js +180 -135
  104. package/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
  105. package/dist/components/PlElementList/PlElementListItem.vue.d.ts +20 -0
  106. package/dist/components/PlElementList/PlElementListItem.vue2.js +101 -76
  107. package/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
  108. package/dist/components/PlErrorAlert/PlErrorAlert.vue2.js.map +1 -1
  109. package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js.map +1 -1
  110. package/dist/components/PlFileDialog/Local.vue.js +24 -24
  111. package/dist/components/PlFileDialog/Local.vue.js.map +1 -1
  112. package/dist/components/PlFileDialog/PlFileDialog.vue.js +38 -38
  113. package/dist/components/PlFileDialog/PlFileDialog.vue.js.map +1 -1
  114. package/dist/components/PlFileDialog/Remote.vue.js +2 -2
  115. package/dist/components/PlFileDialog/Remote.vue.js.map +1 -1
  116. package/dist/components/PlFileDialog/Shortcuts.vue2.js +4 -4
  117. package/dist/components/PlFileDialog/Shortcuts.vue2.js.map +1 -1
  118. package/dist/components/PlFileInput/PlFileInput.vue.d.ts +1 -1
  119. package/dist/components/PlFileInput/PlFileInput.vue.js +78 -76
  120. package/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
  121. package/dist/components/PlIcon16/PlIcon16.vue2.js.map +1 -1
  122. package/dist/components/PlIcon24/PlIcon24.vue2.js.map +1 -1
  123. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js +11 -11
  124. package/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js.map +1 -1
  125. package/dist/components/PlLogView/PlLogView.vue.js +62 -60
  126. package/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
  127. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js +22 -22
  128. package/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js.map +1 -1
  129. package/dist/components/PlNumberField/PlNumberField.vue.d.ts +6 -1
  130. package/dist/components/PlNumberField/PlNumberField.vue.js +66 -60
  131. package/dist/components/PlNumberField/PlNumberField.vue.js.map +1 -1
  132. package/dist/components/PlProgressBar/PlProgressBar.vue.js +12 -12
  133. package/dist/components/PlProgressBar/PlProgressBar.vue.js.map +1 -1
  134. package/dist/components/PlProgressCell/PlProgressCell.vue.js +20 -20
  135. package/dist/components/PlProgressCell/PlProgressCell.vue.js.map +1 -1
  136. package/dist/components/PlRadio/PlRadio.vue2.js.map +1 -1
  137. package/dist/components/PlRadio/PlRadioGroup.vue2.js +8 -8
  138. package/dist/components/PlRadio/PlRadioGroup.vue2.js.map +1 -1
  139. package/dist/components/PlSearchField/PlSearchField.vue2.js +19 -19
  140. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  141. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js +8 -8
  142. package/dist/components/PlSectionSeparator/PlSectionSeparator.vue2.js.map +1 -1
  143. package/dist/components/PlSidebar/PlSidebarGroup.vue2.js.map +1 -1
  144. package/dist/components/PlSidebar/PlSidebarItem.vue2.js.map +1 -1
  145. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js +5 -3
  146. package/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
  147. package/dist/components/PlSlideModal/PlSlideModal.vue2.js.map +1 -1
  148. package/dist/components/PlSplash/PlSplash.vue.js +16 -16
  149. package/dist/components/PlSplash/PlSplash.vue.js.map +1 -1
  150. package/dist/components/PlStatusTag/PlStatusTag.vue.js +7 -7
  151. package/dist/components/PlStatusTag/PlStatusTag.vue.js.map +1 -1
  152. package/dist/components/PlSvg/PlSvg.vue2.js.map +1 -1
  153. package/dist/components/PlTabs/PlTabs.vue.js +18 -18
  154. package/dist/components/PlTabs/PlTabs.vue.js.map +1 -1
  155. package/dist/components/PlTabs/Tab.vue.js +9 -9
  156. package/dist/components/PlTabs/Tab.vue.js.map +1 -1
  157. package/dist/components/PlTextArea/PlTextArea.vue.js +55 -53
  158. package/dist/components/PlTextArea/PlTextArea.vue.js.map +1 -1
  159. package/dist/components/PlTextField/PlTextField.vue.d.ts +4 -0
  160. package/dist/components/PlTextField/PlTextField.vue.js +66 -60
  161. package/dist/components/PlTextField/PlTextField.vue.js.map +1 -1
  162. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.js +14 -14
  163. package/dist/components/PlToggleSwitch/PlToggleSwitch.vue.js.map +1 -1
  164. package/dist/components/PlTooltip/Beak.vue.js +2 -2
  165. package/dist/components/PlTooltip/Beak.vue.js.map +1 -1
  166. package/dist/components/PlTooltip/PlTooltip.vue.js +50 -50
  167. package/dist/components/PlTooltip/PlTooltip.vue.js.map +1 -1
  168. package/dist/components/Scrollable.vue.js.map +1 -1
  169. package/dist/components/Slider.vue.js +35 -35
  170. package/dist/components/Slider.vue.js.map +1 -1
  171. package/dist/components/SliderRange.vue.js +47 -47
  172. package/dist/components/SliderRange.vue.js.map +1 -1
  173. package/dist/components/SliderRangeTriple.vue.js +47 -47
  174. package/dist/components/SliderRangeTriple.vue.js.map +1 -1
  175. package/dist/components/TabItem.vue.js.map +1 -1
  176. package/dist/components/ThemeSwitcher.vue.js +2 -2
  177. package/dist/components/ThemeSwitcher.vue.js.map +1 -1
  178. package/dist/components/TransitionSlidePanel.vue.js.map +1 -1
  179. package/dist/components/VScroll.vue.js.map +1 -1
  180. package/dist/components/contextMenu/Menu.vue2.js +12 -12
  181. package/dist/components/contextMenu/Menu.vue2.js.map +1 -1
  182. package/dist/composition/filters/metadata.d.ts +205 -0
  183. package/dist/composition/filters/metadata.js +129 -19
  184. package/dist/composition/filters/metadata.js.map +1 -1
  185. package/dist/index.js +1 -1
  186. package/dist/layout/PlBlockPage/PlBlockPage.vue.js +27 -27
  187. package/dist/layout/PlBlockPage/PlBlockPage.vue.js.map +1 -1
  188. package/dist/layout/PlContainer/PlContainer.vue.js +10 -10
  189. package/dist/layout/PlContainer/PlContainer.vue.js.map +1 -1
  190. package/dist/layout/PlGrid/PlGrid.vue.js.map +1 -1
  191. package/dist/layout/PlRow/PlRow.vue.js +8 -8
  192. package/dist/layout/PlRow/PlRow.vue.js.map +1 -1
  193. package/dist/layout/PlSpacer/PlSpacer.vue.js.map +1 -1
  194. package/dist/utils/DoubleContour.vue.d.ts +7 -1
  195. package/dist/utils/DoubleContour.vue.js +20 -13
  196. package/dist/utils/DoubleContour.vue.js.map +1 -1
  197. package/dist/utils/DoubleContour.vue3.js +7 -0
  198. package/dist/utils/DoubleContour.vue3.js.map +1 -0
  199. package/dist/utils/DropdownOverlay/DropdownOverlay.vue.js.map +1 -1
  200. package/dist/utils/PlCloseModalBtn.vue.js +2 -2
  201. package/dist/utils/PlCloseModalBtn.vue.js.map +1 -1
  202. package/dist/utils/TextLabel.vue.js.map +1 -1
  203. package/package.json +5 -5
  204. package/src/components/PlAutocomplete/PlAutocomplete.vue +6 -1
  205. package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +6 -1
  206. package/src/components/PlDropdown/PlDropdown.vue +12 -2
  207. package/src/components/PlDropdownMulti/PlDropdownMulti.vue +6 -1
  208. package/src/components/PlElementList/PlElementList.vue +40 -6
  209. package/src/components/PlElementList/PlElementListItem.vue +64 -47
  210. package/src/components/PlNumberField/PlNumberField.vue +4 -1
  211. package/src/components/PlTextField/PlTextField.vue +5 -1
  212. package/src/composition/filters/metadata.ts +105 -0
  213. package/src/utils/DoubleContour.vue +68 -2
  214. package/dist/utils/DoubleContour.vue2.js +0 -7
  215. package/dist/utils/DoubleContour.vue2.js.map +0 -1
@@ -21,6 +21,27 @@ export declare const filterUiMetadata: {
21
21
  };
22
22
  supportedFor: typeof isNumericValueType;
23
23
  };
24
+ notEqual: {
25
+ label: string;
26
+ form: {
27
+ column: {
28
+ label: string;
29
+ fieldType: "SUniversalPColumnId";
30
+ defaultValue: () => undefined;
31
+ };
32
+ type: {
33
+ label: string;
34
+ fieldType: "FilterType";
35
+ defaultValue: () => "notEqual";
36
+ };
37
+ x: {
38
+ label: string;
39
+ fieldType: "number";
40
+ defaultValue: () => number;
41
+ };
42
+ };
43
+ supportedFor: typeof isNumericValueType;
44
+ };
24
45
  lessThan: {
25
46
  label: string;
26
47
  form: {
@@ -436,6 +457,90 @@ export declare const filterUiMetadata: {
436
457
  };
437
458
  supportedFor: () => false;
438
459
  };
460
+ patternMatchesRegularExpression: {
461
+ label: string;
462
+ form: {
463
+ column: {
464
+ label: string;
465
+ fieldType: "SUniversalPColumnId";
466
+ defaultValue: () => undefined;
467
+ };
468
+ type: {
469
+ label: string;
470
+ fieldType: "FilterType";
471
+ defaultValue: () => "patternMatchesRegularExpression";
472
+ };
473
+ value: {
474
+ label: string;
475
+ fieldType: "string";
476
+ defaultValue: () => string;
477
+ };
478
+ };
479
+ supportedFor: typeof isStringValueType;
480
+ };
481
+ patternFuzzyContainSubsequence: {
482
+ label: string;
483
+ form: {
484
+ column: {
485
+ label: string;
486
+ fieldType: "SUniversalPColumnId";
487
+ defaultValue: () => undefined;
488
+ };
489
+ type: {
490
+ label: string;
491
+ fieldType: "FilterType";
492
+ defaultValue: () => "patternFuzzyContainSubsequence";
493
+ };
494
+ value: {
495
+ label: string;
496
+ fieldType: "string";
497
+ defaultValue: () => string;
498
+ };
499
+ };
500
+ supportedFor: typeof isStringValueType;
501
+ };
502
+ inSet: {
503
+ label: string;
504
+ form: {
505
+ column: {
506
+ label: string;
507
+ fieldType: "SUniversalPColumnId";
508
+ defaultValue: () => undefined;
509
+ };
510
+ type: {
511
+ label: string;
512
+ fieldType: "FilterType";
513
+ defaultValue: () => "inSet";
514
+ };
515
+ value: {
516
+ fieldType: "unknown[]";
517
+ label: string;
518
+ defaultValue: () => never[];
519
+ };
520
+ };
521
+ supportedFor: typeof isStringValueType;
522
+ };
523
+ notInSet: {
524
+ label: string;
525
+ form: {
526
+ column: {
527
+ label: string;
528
+ fieldType: "SUniversalPColumnId";
529
+ defaultValue: () => undefined;
530
+ };
531
+ type: {
532
+ label: string;
533
+ fieldType: "FilterType";
534
+ defaultValue: () => "notInSet";
535
+ };
536
+ value: {
537
+ label: string;
538
+ fieldType: "unknown[]";
539
+ defaultValue: () => never[];
540
+ };
541
+ };
542
+ supportedFor: typeof isStringValueType;
543
+ };
439
544
  };
440
545
  export declare function getFilterUiTypeOptions(columnSpec?: SimplifiedPColumnSpec): {
441
546
  label: string;
@@ -461,6 +566,26 @@ export declare function getFilterUiMetadata(type: FilterSpecType): {
461
566
  };
462
567
  };
463
568
  supportedFor: typeof isNumericValueType;
569
+ } | {
570
+ label: string;
571
+ form: {
572
+ column: {
573
+ label: string;
574
+ fieldType: "SUniversalPColumnId";
575
+ defaultValue: () => undefined;
576
+ };
577
+ type: {
578
+ label: string;
579
+ fieldType: "FilterType";
580
+ defaultValue: () => "notEqual";
581
+ };
582
+ x: {
583
+ label: string;
584
+ fieldType: "number";
585
+ defaultValue: () => number;
586
+ };
587
+ };
588
+ supportedFor: typeof isNumericValueType;
464
589
  } | {
465
590
  label: string;
466
591
  form: {
@@ -856,6 +981,86 @@ export declare function getFilterUiMetadata(type: FilterSpecType): {
856
981
  };
857
982
  };
858
983
  supportedFor: () => false;
984
+ } | {
985
+ label: string;
986
+ form: {
987
+ column: {
988
+ label: string;
989
+ fieldType: "SUniversalPColumnId";
990
+ defaultValue: () => undefined;
991
+ };
992
+ type: {
993
+ label: string;
994
+ fieldType: "FilterType";
995
+ defaultValue: () => "patternMatchesRegularExpression";
996
+ };
997
+ value: {
998
+ label: string;
999
+ fieldType: "string";
1000
+ defaultValue: () => string;
1001
+ };
1002
+ };
1003
+ supportedFor: typeof isStringValueType;
1004
+ } | {
1005
+ label: string;
1006
+ form: {
1007
+ column: {
1008
+ label: string;
1009
+ fieldType: "SUniversalPColumnId";
1010
+ defaultValue: () => undefined;
1011
+ };
1012
+ type: {
1013
+ label: string;
1014
+ fieldType: "FilterType";
1015
+ defaultValue: () => "patternFuzzyContainSubsequence";
1016
+ };
1017
+ value: {
1018
+ label: string;
1019
+ fieldType: "string";
1020
+ defaultValue: () => string;
1021
+ };
1022
+ };
1023
+ supportedFor: typeof isStringValueType;
1024
+ } | {
1025
+ label: string;
1026
+ form: {
1027
+ column: {
1028
+ label: string;
1029
+ fieldType: "SUniversalPColumnId";
1030
+ defaultValue: () => undefined;
1031
+ };
1032
+ type: {
1033
+ label: string;
1034
+ fieldType: "FilterType";
1035
+ defaultValue: () => "inSet";
1036
+ };
1037
+ value: {
1038
+ fieldType: "unknown[]";
1039
+ label: string;
1040
+ defaultValue: () => never[];
1041
+ };
1042
+ };
1043
+ supportedFor: typeof isStringValueType;
1044
+ } | {
1045
+ label: string;
1046
+ form: {
1047
+ column: {
1048
+ label: string;
1049
+ fieldType: "SUniversalPColumnId";
1050
+ defaultValue: () => undefined;
1051
+ };
1052
+ type: {
1053
+ label: string;
1054
+ fieldType: "FilterType";
1055
+ defaultValue: () => "notInSet";
1056
+ };
1057
+ value: {
1058
+ label: string;
1059
+ fieldType: "unknown[]";
1060
+ defaultValue: () => never[];
1061
+ };
1062
+ };
1063
+ supportedFor: typeof isStringValueType;
859
1064
  };
860
1065
  declare function isNumericValueType(spec: SimplifiedPColumnSpec): boolean;
861
1066
  declare function isStringValueType(spec: SimplifiedPColumnSpec): boolean;
@@ -1,4 +1,4 @@
1
- const t = {
1
+ const o = {
2
2
  equal: {
3
3
  label: "Col = X (Equal)",
4
4
  form: {
@@ -19,7 +19,29 @@ const t = {
19
19
  defaultValue: () => 0
20
20
  }
21
21
  },
22
- supportedFor: a
22
+ supportedFor: l
23
+ },
24
+ notEqual: {
25
+ label: "Col ≠ X (Not Equal)",
26
+ form: {
27
+ column: {
28
+ label: "Column",
29
+ fieldType: "SUniversalPColumnId",
30
+ defaultValue: () => {
31
+ }
32
+ },
33
+ type: {
34
+ label: "Predicate",
35
+ fieldType: "FilterType",
36
+ defaultValue: () => "notEqual"
37
+ },
38
+ x: {
39
+ label: "X",
40
+ fieldType: "number",
41
+ defaultValue: () => 0
42
+ }
43
+ },
44
+ supportedFor: l
23
45
  },
24
46
  lessThan: {
25
47
  label: "Col < X (Less Than)",
@@ -41,7 +63,7 @@ const t = {
41
63
  defaultValue: () => 0
42
64
  }
43
65
  },
44
- supportedFor: a
66
+ supportedFor: l
45
67
  },
46
68
  greaterThan: {
47
69
  label: "Col > X (Greater Than)",
@@ -63,7 +85,7 @@ const t = {
63
85
  defaultValue: () => 0
64
86
  }
65
87
  },
66
- supportedFor: a
88
+ supportedFor: l
67
89
  },
68
90
  lessThanOrEqual: {
69
91
  label: "Col ≤ X (Less Than or Equal)",
@@ -85,7 +107,7 @@ const t = {
85
107
  defaultValue: () => 0
86
108
  }
87
109
  },
88
- supportedFor: a
110
+ supportedFor: l
89
111
  },
90
112
  greaterThanOrEqual: {
91
113
  label: "Col ≥ X (Greater Than or Equal)",
@@ -107,7 +129,7 @@ const t = {
107
129
  defaultValue: () => 0
108
130
  }
109
131
  },
110
- supportedFor: a
132
+ supportedFor: l
111
133
  },
112
134
  // Columns comparison
113
135
  equalToColumn: {
@@ -131,7 +153,7 @@ const t = {
131
153
  }
132
154
  }
133
155
  },
134
- supportedFor: (e, l) => a(e) && (l === void 0 || a(l))
156
+ supportedFor: (e, a) => l(e) && (a === void 0 || l(a))
135
157
  },
136
158
  lessThanColumn: {
137
159
  label: "Col₁ < Col₂ (Compare Columns)",
@@ -160,7 +182,7 @@ const t = {
160
182
  }
161
183
  }
162
184
  },
163
- supportedFor: (e, l) => a(e) && (l === void 0 || a(l))
185
+ supportedFor: (e, a) => l(e) && (a === void 0 || l(a))
164
186
  },
165
187
  greaterThanColumn: {
166
188
  label: "Col₁ > Col₂ (Compare Columns)",
@@ -189,7 +211,7 @@ const t = {
189
211
  }
190
212
  }
191
213
  },
192
- supportedFor: (e, l) => a(e) && (l === void 0 || a(l))
214
+ supportedFor: (e, a) => l(e) && (a === void 0 || l(a))
193
215
  },
194
216
  lessThanColumnOrEqual: {
195
217
  label: "Col₁ ≤ Col₂ (Compare Columns)",
@@ -218,7 +240,7 @@ const t = {
218
240
  }
219
241
  }
220
242
  },
221
- supportedFor: (e, l) => a(e) && (l === void 0 || a(l))
243
+ supportedFor: (e, a) => l(e) && (a === void 0 || l(a))
222
244
  },
223
245
  greaterThanColumnOrEqual: {
224
246
  label: "Col₁ ≥ Col₂ (Compare Columns)",
@@ -247,7 +269,7 @@ const t = {
247
269
  }
248
270
  }
249
271
  },
250
- supportedFor: (e, l) => a(e) && (l === void 0 || a(l))
272
+ supportedFor: (e, a) => l(e) && (a === void 0 || l(a))
251
273
  },
252
274
  // Ordering filters
253
275
  topN: {
@@ -270,7 +292,7 @@ const t = {
270
292
  defaultValue: () => 10
271
293
  }
272
294
  },
273
- supportedFor: a
295
+ supportedFor: l
274
296
  },
275
297
  bottomN: {
276
298
  label: "Bottom N",
@@ -292,7 +314,7 @@ const t = {
292
314
  defaultValue: () => 10
293
315
  }
294
316
  },
295
- supportedFor: a
317
+ supportedFor: l
296
318
  },
297
319
  patternContainSubsequence: {
298
320
  label: "Col ~ Seq (Contain Subsequence)",
@@ -464,25 +486,113 @@ const t = {
464
486
  }
465
487
  },
466
488
  supportedFor: () => !1
489
+ },
490
+ patternMatchesRegularExpression: {
491
+ label: "Col ~ X (Matches Regular Expression)",
492
+ form: {
493
+ column: {
494
+ label: "Column",
495
+ fieldType: "SUniversalPColumnId",
496
+ defaultValue: () => {
497
+ }
498
+ },
499
+ type: {
500
+ label: "Predicate",
501
+ fieldType: "FilterType",
502
+ defaultValue: () => "patternMatchesRegularExpression"
503
+ },
504
+ value: {
505
+ label: "Seq",
506
+ fieldType: "string",
507
+ defaultValue: () => ""
508
+ }
509
+ },
510
+ supportedFor: u
511
+ },
512
+ patternFuzzyContainSubsequence: {
513
+ label: "Col ~ Seq (Fuzzy Contain Subsequence)",
514
+ form: {
515
+ column: {
516
+ label: "Column",
517
+ fieldType: "SUniversalPColumnId",
518
+ defaultValue: () => {
519
+ }
520
+ },
521
+ type: {
522
+ label: "Predicate",
523
+ fieldType: "FilterType",
524
+ defaultValue: () => "patternFuzzyContainSubsequence"
525
+ },
526
+ value: {
527
+ label: "Set",
528
+ fieldType: "string",
529
+ defaultValue: () => ""
530
+ }
531
+ },
532
+ supportedFor: u
533
+ },
534
+ inSet: {
535
+ label: "Col ∈ Set (In Set)",
536
+ form: {
537
+ column: {
538
+ label: "Column",
539
+ fieldType: "SUniversalPColumnId",
540
+ defaultValue: () => {
541
+ }
542
+ },
543
+ type: {
544
+ label: "Predicate",
545
+ fieldType: "FilterType",
546
+ defaultValue: () => "inSet"
547
+ },
548
+ value: {
549
+ fieldType: "unknown[]",
550
+ label: "Set",
551
+ defaultValue: () => []
552
+ }
553
+ },
554
+ supportedFor: u
555
+ },
556
+ notInSet: {
557
+ label: "Col ∉ Set (Not In Set)",
558
+ form: {
559
+ column: {
560
+ label: "Column",
561
+ fieldType: "SUniversalPColumnId",
562
+ defaultValue: () => {
563
+ }
564
+ },
565
+ type: {
566
+ label: "Predicate",
567
+ fieldType: "FilterType",
568
+ defaultValue: () => "notInSet"
569
+ },
570
+ value: {
571
+ label: "Seq",
572
+ fieldType: "unknown[]",
573
+ defaultValue: () => []
574
+ }
575
+ },
576
+ supportedFor: u
467
577
  }
468
578
  };
469
579
  function r(e) {
470
- return e ? Object.entries(t).filter(([l, o]) => o.supportedFor(e)).map(([l, o]) => ({
471
- label: o.label,
472
- value: l
580
+ return e ? Object.entries(o).filter(([a, t]) => t.supportedFor(e)).map(([a, t]) => ({
581
+ label: t.label,
582
+ value: a
473
583
  })) : [];
474
584
  }
475
585
  function d(e) {
476
- return t[e];
586
+ return o[e];
477
587
  }
478
- function a(e) {
588
+ function l(e) {
479
589
  return e.valueType === "Int" || e.valueType === "Long" || e.valueType === "Float" || e.valueType === "Double";
480
590
  }
481
591
  function u(e) {
482
592
  return e.valueType === "String";
483
593
  }
484
594
  export {
485
- t as filterUiMetadata,
595
+ o as filterUiMetadata,
486
596
  d as getFilterUiMetadata,
487
597
  r as getFilterUiTypeOptions
488
598
  };
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sources":["../../../src/composition/filters/metadata.ts"],"sourcesContent":["import type { FilterSpecType, SimplifiedPColumnSpec } from '@platforma-sdk/model';\nimport type { FilterSpecMetadataRecord } from './types';\n\nexport const filterUiMetadata = {\n equal: {\n label: 'Col = X (Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'equal',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n lessThan: {\n label: 'Col < X (Less Than)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThan',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n greaterThan: {\n label: 'Col > X (Greater Than)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThan',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n lessThanOrEqual: {\n label: 'Col ≤ X (Less Than or Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanOrEqual',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n greaterThanOrEqual: {\n label: 'Col ≥ X (Greater Than or Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanOrEqual',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n // Columns comparison\n equalToColumn: {\n label: 'Col₁ = Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'equalToColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n lessThanColumn: {\n label: 'Col₁ < Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n greaterThanColumn: {\n label: 'Col₁ > Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n lessThanColumnOrEqual: {\n label: 'Col₁ ≤ Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanColumnOrEqual',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n greaterThanColumnOrEqual: {\n label: 'Col₁ ≥ Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanColumnOrEqual',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n // Ordering filters\n topN: {\n label: 'Top N',\n form: {\n column: {\n label: 'Rank By Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'topN',\n },\n n: {\n label: 'N',\n fieldType: 'number',\n defaultValue: () => 10,\n },\n },\n supportedFor: isNumericValueType,\n },\n bottomN: {\n label: 'Bottom N',\n form: {\n column: {\n label: 'Rank By Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'bottomN',\n },\n n: {\n label: 'N',\n fieldType: 'number',\n defaultValue: () => 10,\n },\n },\n supportedFor: isNumericValueType,\n },\n patternContainSubsequence: {\n label: 'Col ~ Seq (Contain Subsequence)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternContainSubsequence',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternNotContainSubsequence: {\n label: 'Col ≁ Seq (Not Contain Subsequence)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternNotContainSubsequence',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternEquals: {\n label: 'Col = Seq (Equals)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternEquals',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternNotEquals: {\n label: 'Col ≠ Seq (Not Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternNotEquals',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n isNA: {\n label: 'Is NA',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'isNA',\n },\n },\n supportedFor: () => true,\n },\n isNotNA: {\n label: 'Is Not NA',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'isNotNA',\n },\n },\n supportedFor: () => true,\n },\n or: {\n label: 'Or',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'or',\n },\n filters: {\n fieldType: 'unknown[]',\n label: 'Filters',\n defaultValue: () => [],\n },\n },\n supportedFor: () => false,\n },\n and: {\n label: 'And',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'and',\n },\n filters: {\n fieldType: 'unknown[]',\n label: 'Filters',\n defaultValue: () => [],\n },\n },\n supportedFor: () => false,\n },\n not: {\n label: 'Not',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'not',\n },\n filter: {\n fieldType: 'form',\n label: 'Filter',\n defaultValue: () => undefined,\n },\n },\n supportedFor: () => false,\n },\n} satisfies FilterSpecMetadataRecord<FilterSpecType>;\n\nexport function getFilterUiTypeOptions(columnSpec?: SimplifiedPColumnSpec) {\n if (!columnSpec) {\n return [];\n }\n\n return Object.entries(filterUiMetadata).filter(([_, metadata]) => metadata.supportedFor(columnSpec)).map(([type, metadata]) => ({\n label: metadata.label,\n value: type,\n }));\n}\n\nexport function getFilterUiMetadata(type: FilterSpecType) {\n return filterUiMetadata[type];\n}\n\nfunction isNumericValueType(spec: SimplifiedPColumnSpec): boolean {\n return spec.valueType === 'Int' || spec.valueType === 'Long' || spec.valueType === 'Float' || spec.valueType === 'Double';\n}\n\nfunction isStringValueType(spec: SimplifiedPColumnSpec): boolean {\n return spec.valueType === 'String';\n}\n"],"names":["filterUiMetadata","isNumericValueType","spec1","spec2","isStringValueType","getFilterUiTypeOptions","columnSpec","_","metadata","type","getFilterUiMetadata","spec"],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sources":["../../../src/composition/filters/metadata.ts"],"sourcesContent":["import type { FilterSpecType, SimplifiedPColumnSpec } from '@platforma-sdk/model';\nimport type { FilterSpecMetadataRecord } from './types';\n\nexport const filterUiMetadata = {\n equal: {\n label: 'Col = X (Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'equal',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n notEqual: {\n label: 'Col ≠ X (Not Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'notEqual',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n lessThan: {\n label: 'Col < X (Less Than)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThan',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n greaterThan: {\n label: 'Col > X (Greater Than)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThan',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n lessThanOrEqual: {\n label: 'Col ≤ X (Less Than or Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanOrEqual',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n greaterThanOrEqual: {\n label: 'Col ≥ X (Greater Than or Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanOrEqual',\n },\n x: {\n label: 'X',\n fieldType: 'number',\n defaultValue: () => 0,\n },\n },\n supportedFor: isNumericValueType,\n },\n // Columns comparison\n equalToColumn: {\n label: 'Col₁ = Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'equalToColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n lessThanColumn: {\n label: 'Col₁ < Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n greaterThanColumn: {\n label: 'Col₁ > Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanColumn',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n lessThanColumnOrEqual: {\n label: 'Col₁ ≤ Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'lessThanColumnOrEqual',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n greaterThanColumnOrEqual: {\n label: 'Col₁ ≥ Col₂ (Compare Columns)',\n form: {\n column: {\n label: 'Col₁',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'greaterThanColumnOrEqual',\n },\n rhs: {\n label: 'Col₂',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n minDiff: {\n label: 'Margin (positive)',\n fieldType: 'number?',\n defaultValue: () => undefined,\n },\n },\n supportedFor: (spec1: SimplifiedPColumnSpec, spec2?: SimplifiedPColumnSpec): boolean => {\n return isNumericValueType(spec1) && (spec2 === undefined || isNumericValueType(spec2));\n },\n },\n // Ordering filters\n topN: {\n label: 'Top N',\n form: {\n column: {\n label: 'Rank By Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'topN',\n },\n n: {\n label: 'N',\n fieldType: 'number',\n defaultValue: () => 10,\n },\n },\n supportedFor: isNumericValueType,\n },\n bottomN: {\n label: 'Bottom N',\n form: {\n column: {\n label: 'Rank By Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'bottomN',\n },\n n: {\n label: 'N',\n fieldType: 'number',\n defaultValue: () => 10,\n },\n },\n supportedFor: isNumericValueType,\n },\n patternContainSubsequence: {\n label: 'Col ~ Seq (Contain Subsequence)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternContainSubsequence',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternNotContainSubsequence: {\n label: 'Col ≁ Seq (Not Contain Subsequence)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternNotContainSubsequence',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternEquals: {\n label: 'Col = Seq (Equals)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternEquals',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternNotEquals: {\n label: 'Col ≠ Seq (Not Equal)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternNotEquals',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n isNA: {\n label: 'Is NA',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'isNA',\n },\n },\n supportedFor: () => true,\n },\n isNotNA: {\n label: 'Is Not NA',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'isNotNA',\n },\n },\n supportedFor: () => true,\n },\n or: {\n label: 'Or',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'or',\n },\n filters: {\n fieldType: 'unknown[]',\n label: 'Filters',\n defaultValue: () => [],\n },\n },\n supportedFor: () => false,\n },\n and: {\n label: 'And',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'and',\n },\n filters: {\n fieldType: 'unknown[]',\n label: 'Filters',\n defaultValue: () => [],\n },\n },\n supportedFor: () => false,\n },\n not: {\n label: 'Not',\n form: {\n type: {\n fieldType: 'FilterType',\n label: 'Predicate',\n defaultValue: () => 'not',\n },\n filter: {\n fieldType: 'form',\n label: 'Filter',\n defaultValue: () => undefined,\n },\n },\n supportedFor: () => false,\n },\n patternMatchesRegularExpression: {\n label: 'Col ~ X (Matches Regular Expression)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternMatchesRegularExpression',\n },\n value: {\n label: 'Seq',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n patternFuzzyContainSubsequence: {\n label: 'Col ~ Seq (Fuzzy Contain Subsequence)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'patternFuzzyContainSubsequence',\n },\n value: {\n label: 'Set',\n fieldType: 'string',\n defaultValue: () => '',\n },\n },\n supportedFor: isStringValueType,\n },\n inSet: {\n label: 'Col ∈ Set (In Set)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'inSet',\n },\n value: {\n fieldType: 'unknown[]',\n label: 'Set',\n defaultValue: () => [],\n },\n },\n supportedFor: isStringValueType,\n },\n notInSet: {\n label: 'Col ∉ Set (Not In Set)',\n form: {\n column: {\n label: 'Column',\n fieldType: 'SUniversalPColumnId',\n defaultValue: () => undefined,\n },\n type: {\n label: 'Predicate',\n fieldType: 'FilterType',\n defaultValue: () => 'notInSet',\n },\n value: {\n label: 'Seq',\n fieldType: 'unknown[]',\n defaultValue: () => [],\n },\n },\n supportedFor: isStringValueType,\n },\n} satisfies FilterSpecMetadataRecord<FilterSpecType>;\n\nexport function getFilterUiTypeOptions(columnSpec?: SimplifiedPColumnSpec) {\n if (!columnSpec) {\n return [];\n }\n\n return Object.entries(filterUiMetadata).filter(([_, metadata]) => metadata.supportedFor(columnSpec)).map(([type, metadata]) => ({\n label: metadata.label,\n value: type,\n }));\n}\n\nexport function getFilterUiMetadata(type: FilterSpecType) {\n return filterUiMetadata[type];\n}\n\nfunction isNumericValueType(spec: SimplifiedPColumnSpec): boolean {\n return spec.valueType === 'Int' || spec.valueType === 'Long' || spec.valueType === 'Float' || spec.valueType === 'Double';\n}\n\nfunction isStringValueType(spec: SimplifiedPColumnSpec): boolean {\n return spec.valueType === 'String';\n}\n"],"names":["filterUiMetadata","isNumericValueType","spec1","spec2","isStringValueType","getFilterUiTypeOptions","columnSpec","_","metadata","type","getFilterUiMetadata","spec"],"mappings":"AAGO,MAAMA,IAAmB;AAAA,EAC9B,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcC;AAAA,EAAA;AAAA,EAEhB,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,aAAa;AAAA,IACX,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,iBAAiB;AAAA,IACf,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,oBAAoB;AAAA,IAClB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA;AAAA,EAGhB,eAAe;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,KAAK;AAAA,QACH,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,CAACC,GAA8BC,MACpCF,EAAmBC,CAAK,MAAMC,MAAU,UAAaF,EAAmBE,CAAK;AAAA,EACtF;AAAA,EAEF,gBAAgB;AAAA,IACd,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,KAAK;AAAA,QACH,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,CAACD,GAA8BC,MACpCF,EAAmBC,CAAK,MAAMC,MAAU,UAAaF,EAAmBE,CAAK;AAAA,EACtF;AAAA,EAEF,mBAAmB;AAAA,IACjB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,KAAK;AAAA,QACH,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,CAACD,GAA8BC,MACpCF,EAAmBC,CAAK,MAAMC,MAAU,UAAaF,EAAmBE,CAAK;AAAA,EACtF;AAAA,EAEF,uBAAuB;AAAA,IACrB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,KAAK;AAAA,QACH,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,CAACD,GAA8BC,MACpCF,EAAmBC,CAAK,MAAMC,MAAU,UAAaF,EAAmBE,CAAK;AAAA,EACtF;AAAA,EAEF,0BAA0B;AAAA,IACxB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,KAAK;AAAA,QACH,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,SAAS;AAAA,QACP,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,CAACD,GAA8BC,MACpCF,EAAmBC,CAAK,MAAMC,MAAU,UAAaF,EAAmBE,CAAK;AAAA,EACtF;AAAA;AAAA,EAGF,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcF;AAAA,EAAA;AAAA,EAEhB,SAAS;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,GAAG;AAAA,QACD,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,2BAA2B;AAAA,IACzB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcG;AAAA,EAAA;AAAA,EAEhB,8BAA8B;AAAA,IAC5B,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,eAAe;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,kBAAkB;AAAA,IAChB,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,MAAM;AAAA,IACJ,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAc,MAAM;AAAA,EAAA;AAAA,EAEtB,SAAS;AAAA,IACP,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAc,MAAM;AAAA,EAAA;AAAA,EAEtB,IAAI;AAAA,IACF,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,SAAS;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM,CAAA;AAAA,MAAC;AAAA,IACvB;AAAA,IAEF,cAAc,MAAM;AAAA,EAAA;AAAA,EAEtB,KAAK;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,SAAS;AAAA,QACP,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM,CAAA;AAAA,MAAC;AAAA,IACvB;AAAA,IAEF,cAAc,MAAM;AAAA,EAAA;AAAA,EAEtB,KAAK;AAAA,IACH,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,QACJ,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,QAAQ;AAAA,QACN,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,IACtB;AAAA,IAEF,cAAc,MAAM;AAAA,EAAA;AAAA,EAEtB,iCAAiC;AAAA,IAC/B,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,gCAAgC;AAAA,IAC9B,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,IACtB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,OAAO;AAAA,IACL,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,WAAW;AAAA,QACX,OAAO;AAAA,QACP,cAAc,MAAM,CAAA;AAAA,MAAC;AAAA,IACvB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAAA,EAEhB,UAAU;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,MACJ,QAAQ;AAAA,QACN,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAA;AAAA;AAAA,MAAM;AAAA,MAEtB,MAAM;AAAA,QACJ,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM;AAAA,MAAA;AAAA,MAEtB,OAAO;AAAA,QACL,OAAO;AAAA,QACP,WAAW;AAAA,QACX,cAAc,MAAM,CAAA;AAAA,MAAC;AAAA,IACvB;AAAA,IAEF,cAAcA;AAAA,EAAA;AAElB;AAEO,SAASC,EAAuBC,GAAoC;AACzE,SAAKA,IAIE,OAAO,QAAQN,CAAgB,EAAE,OAAO,CAAC,CAACO,GAAGC,CAAQ,MAAMA,EAAS,aAAaF,CAAU,CAAC,EAAE,IAAI,CAAC,CAACG,GAAMD,CAAQ,OAAO;AAAA,IAC9H,OAAOA,EAAS;AAAA,IAChB,OAAOC;AAAA,EAAA,EACP,IANO,CAAA;AAOX;AAEO,SAASC,EAAoBD,GAAsB;AACxD,SAAOT,EAAiBS,CAAI;AAC9B;AAEA,SAASR,EAAmBU,GAAsC;AAChE,SAAOA,EAAK,cAAc,SAASA,EAAK,cAAc,UAAUA,EAAK,cAAc,WAAWA,EAAK,cAAc;AACnH;AAEA,SAASP,EAAkBO,GAAsC;AAC/D,SAAOA,EAAK,cAAc;AAC5B;"}