@platforma-sdk/ui-vue 1.84.10 → 1.84.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +67 -67
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +1 -1
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +19 -0
- package/dist/components/BlockLayout.js.map +1 -1
- package/dist/components/BlockLayout.style.js.map +1 -1
- package/dist/components/BlockLayout.vue.d.ts.map +1 -1
- package/dist/components/BlockLayout.vue2.js +5 -1
- package/dist/components/BlockLayout.vue2.js.map +1 -1
- package/dist/components/BlockLoader.js.map +1 -1
- package/dist/components/BlockLoader.vue.d.ts.map +1 -1
- package/dist/components/BlockLoader.vue2.js +2 -0
- package/dist/components/BlockLoader.vue2.js.map +1 -1
- package/dist/components/LoaderPage.js +4 -1
- package/dist/components/LoaderPage.js.map +1 -1
- package/dist/components/LoaderPage.vue.d.ts.map +1 -1
- package/dist/components/NotFound.js.map +1 -1
- package/dist/components/NotFound.vue.d.ts.map +1 -1
- package/dist/components/NotFound.vue2.js +11 -5
- package/dist/components/NotFound.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.js.map +1 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.style.js.map +1 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.vue.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js +26 -2
- package/dist/components/PlAdvancedFilter/FilterEditor.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/OperandButton.js.map +1 -1
- package/dist/components/PlAdvancedFilter/OperandButton.style.js.map +1 -1
- package/dist/components/PlAdvancedFilter/OperandButton.vue.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js +2 -1
- package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.js.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.style.js.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.d.ts.map +1 -1
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +70 -61
- package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.js.map +1 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.vue.d.ts.map +1 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.vue2.js +5 -1
- package/dist/components/PlAgCellFile/PlAgCellFile.vue2.js.map +1 -1
- package/dist/components/PlAgCellProgress/PlAgCellProgress.js.map +1 -1
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue.d.ts.map +1 -1
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js +6 -6
- package/dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js.map +1 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.js.map +1 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.d.ts.map +1 -1
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue2.js +8 -2
- package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue2.js.map +1 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.js.map +1 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.d.ts.map +1 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue2.js +4 -1
- package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue2.js.map +1 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.js.map +1 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.d.ts.map +1 -1
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue2.js +7 -2
- package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue2.js.map +1 -1
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.js.map +1 -1
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.d.ts.map +1 -1
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js +28 -20
- package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js.map +1 -1
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.js.map +1 -1
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.d.ts.map +1 -1
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js +1 -0
- package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.style.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js +2 -0
- package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.style.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +5 -1
- package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js +12 -2
- package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.js.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue.d.ts.map +1 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue2.js +7 -1
- package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue2.js.map +1 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.js.map +1 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.style.js.map +1 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.d.ts.map +1 -1
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js +35 -27
- package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.d.ts.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js +12 -7
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js.map +1 -1
- package/dist/components/PlAgRowNumHeader.js.map +1 -1
- package/dist/components/PlAgRowNumHeader.vue.d.ts.map +1 -1
- package/dist/components/PlAgRowNumHeader.vue2.js +14 -7
- package/dist/components/PlAgRowNumHeader.vue2.js.map +1 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.js.map +1 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.d.ts.map +1 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js +8 -1
- package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.js.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.style.js.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +14 -3
- package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.js.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.style.js.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +11 -2
- package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.style.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.style.js.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue.d.ts.map +1 -1
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js +1 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js.map +1 -1
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.js.map +1 -1
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.d.ts.map +1 -1
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue2.js +16 -2
- package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue2.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Item.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Item.style.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Item.vue.d.ts.map +1 -1
- package/dist/components/PlBtnExportArchive/Item.vue2.js +12 -2
- package/dist/components/PlBtnExportArchive/Item.vue2.js.map +1 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.js.map +1 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.style.js.map +1 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.d.ts.map +1 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js +7 -1
- package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Summary.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Summary.style.js.map +1 -1
- package/dist/components/PlBtnExportArchive/Summary.vue.d.ts.map +1 -1
- package/dist/components/PlBtnExportArchive/Summary.vue2.js +11 -2
- package/dist/components/PlBtnExportArchive/Summary.vue2.js.map +1 -1
- package/dist/components/PlDatasetSelector/PlDatasetSelector.js.map +1 -1
- package/dist/components/PlDatasetSelector/PlDatasetSelector.vue.d.ts.map +1 -1
- package/dist/components/PlDatasetSelector/PlDatasetSelector.vue2.js +1 -0
- package/dist/components/PlDatasetSelector/PlDatasetSelector.vue2.js.map +1 -1
- package/dist/components/PlTableFastSearch/PlTableFastSearch.js.map +1 -1
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue.d.ts.map +1 -1
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js +1 -0
- package/dist/components/PlTableFastSearch/PlTableFastSearch.vue2.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.style.js.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue.d.ts.map +1 -1
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +12 -2
- package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
- package/package.json +7 -7
- package/src/components/BlockLayout.vue +4 -2
- package/src/components/BlockLoader.vue +2 -1
- package/src/components/LoaderPage.vue +1 -1
- package/src/components/NotFound.vue +7 -3
- package/src/components/PlAdvancedFilter/FilterEditor.vue +36 -6
- package/src/components/PlAdvancedFilter/OperandButton.vue +2 -1
- package/src/components/PlAdvancedFilter/PlAdvancedFilter.vue +20 -4
- package/src/components/PlAgCellFile/PlAgCellFile.vue +2 -1
- package/src/components/PlAgCellProgress/PlAgCellProgress.vue +1 -1
- package/src/components/PlAgCellStatusTag/PlAgCellStatusTag.vue +2 -2
- package/src/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue +13 -3
- package/src/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue +13 -3
- package/src/components/PlAgColumnHeader/PlAgColumnHeader.vue +24 -6
- package/src/components/PlAgCsvExporter/PlAgCsvExporter.vue +6 -1
- package/src/components/PlAgDataTable/PlAgDataTableSheets.vue +6 -1
- package/src/components/PlAgDataTable/PlAgDataTableV2.vue +2 -1
- package/src/components/PlAgDataTable/PlAgOverlayLoading.vue +10 -3
- package/src/components/PlAgDataTable/PlAgOverlayNoRows.vue +4 -2
- package/src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue +18 -5
- package/src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue +5 -1
- package/src/components/PlAgRowNumHeader.vue +3 -1
- package/src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue +3 -2
- package/src/components/PlAnnotations/components/AnnotationsSidebar.vue +13 -4
- package/src/components/PlAnnotations/components/FilterSidebar.vue +11 -3
- package/src/components/PlAnnotations/components/PlAnnotations.vue +1 -1
- package/src/components/PlAnnotations/components/PlAnnotationsModal.vue +1 -0
- package/src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue +34 -7
- package/src/components/PlBtnExportArchive/Item.vue +22 -6
- package/src/components/PlBtnExportArchive/PlBtnExportArchive.vue +18 -3
- package/src/components/PlBtnExportArchive/Summary.vue +15 -5
- package/src/components/PlDatasetSelector/PlDatasetSelector.vue +1 -0
- package/src/components/PlTableFastSearch/PlTableFastSearch.vue +6 -1
- package/src/components/PlTableFilters/PlTableFiltersV2.vue +14 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgGridColumnManager.vue_vue_type_style_index_0_lang.module.js","names":[],"sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlElementList,\n PlIcon24,\n PlSearchField,\n PlSlideModal,\n usePlBlockPageTitleTeleportTarget,\n} from \"@milaboratories/uikit\";\nimport { type GridApi } from \"ag-grid-enterprise\";\nimport { computed, ref } from \"vue\";\nimport { PlAgDataTableRowNumberColId } from \"../PlAgDataTable/sources/row-number\";\nimport { useFilteredItems } from \"./useFilteredItems\";\nimport { useGridColumns } from \"./useGridColumns\";\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst query = ref(\"\");\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlAgGridColumnManager\");\n\nconst columns = useGridColumns(props);\n\nconst items = computed(() => {\n return columns.value.map((col, i) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName ?? `Unnamed Column (${i + 1})`,\n }));\n});\n\nconst { filteredItems, segments } = useFilteredItems({\n items,\n query,\n getStrings: (item) => [item.label],\n});\n\nconst toggleableFilteredItems = computed(() =>\n filteredItems.value.filter((item) => item.id !== PlAgDataTableRowNumberColId),\n);\n\nconst allFilteredHidden = computed(\n () =>\n toggleableFilteredItems.value.length > 0 &&\n toggleableFilteredItems.value.every((item) => !item.column.isVisible()),\n);\n\nconst toggleAllFiltered = () => {\n if (props.api.isDestroyed()) return;\n const nextVisible = allFilteredHidden.value;\n const cols = toggleableFilteredItems.value.map((item) => item.column);\n if (cols.length === 0) return;\n props.api.setColumnsVisible(cols, nextVisible);\n};\n</script>\n\n<template>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost
|
|
1
|
+
{"version":3,"file":"PlAgGridColumnManager.vue_vue_type_style_index_0_lang.module.js","names":[],"sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlElementList,\n PlIcon24,\n PlSearchField,\n PlSlideModal,\n usePlBlockPageTitleTeleportTarget,\n} from \"@milaboratories/uikit\";\nimport { type GridApi } from \"ag-grid-enterprise\";\nimport { computed, ref } from \"vue\";\nimport { PlAgDataTableRowNumberColId } from \"../PlAgDataTable/sources/row-number\";\nimport { useFilteredItems } from \"./useFilteredItems\";\nimport { useGridColumns } from \"./useGridColumns\";\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst query = ref(\"\");\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlAgGridColumnManager\");\n\nconst columns = useGridColumns(props);\n\nconst items = computed(() => {\n return columns.value.map((col, i) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName ?? `Unnamed Column (${i + 1})`,\n }));\n});\n\nconst { filteredItems, segments } = useFilteredItems({\n items,\n query,\n getStrings: (item) => [item.label],\n});\n\nconst toggleableFilteredItems = computed(() =>\n filteredItems.value.filter((item) => item.id !== PlAgDataTableRowNumberColId),\n);\n\nconst allFilteredHidden = computed(\n () =>\n toggleableFilteredItems.value.length > 0 &&\n toggleableFilteredItems.value.every((item) => !item.column.isVisible()),\n);\n\nconst toggleAllFiltered = () => {\n if (props.api.isDestroyed()) return;\n const nextVisible = allFilteredHidden.value;\n const cols = toggleableFilteredItems.value.map((item) => item.column);\n if (cols.length === 0) return;\n props.api.setColumnsVisible(cols, nextVisible);\n};\n</script>\n\n<template>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost\n data-testid=\"pl-ag-grid-column-manager\"\n icon=\"columns\"\n @click.stop=\"slideModal = !slideModal\"\n >\n Columns\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal\n v-model=\"slideModal\"\n data-testid=\"pl-ag-grid-column-manager-panel\"\n :width=\"width\"\n close-on-outside-click\n >\n <template #title>Manage Columns</template>\n <div data-testid=\"pl-ag-grid-column-manager-search-row\" :class=\"$style.searchRow\">\n <PlSearchField v-model=\"query\" data-testid=\"pl-ag-grid-column-manager-search\" clearable />\n <PlBtnSecondary\n data-testid=\"pl-ag-grid-column-manager-toggle-all\"\n :class=\"$style.toggleAllBtn\"\n :disabled=\"toggleableFilteredItems.length === 0\"\n @click.stop=\"toggleAllFiltered\"\n >\n <PlIcon24 v-if=\"allFilteredHidden\" name=\"view-show\" />\n <PlIcon24 v-else name=\"view-hide\" />\n </PlBtnSecondary>\n </div>\n <PlElementList\n data-testid=\"pl-ag-grid-column-manager-list\"\n :items=\"filteredItems\"\n :get-item-key=\"(item) => item.id\"\n :is-draggable=\"(item) => !item.column.getColDef().lockPosition\"\n :on-sort=\"\n (fromIndex, toIndex) => {\n if (!props.api.isDestroyed()) {\n const columnToMove = columns[fromIndex];\n props.api.moveColumns([columnToMove], toIndex);\n }\n return true; // Let PlElementList handle the visual update\n }\n \"\n :on-toggle=\"\n (item) => {\n if (!props.api.isDestroyed()) {\n props.api.setColumnsVisible([item.column], !item.column.isVisible());\n }\n }\n \"\n :is-toggled=\"(item) => !item.column.isVisible()\"\n :is-toggable=\"(item) => item.id !== PlAgDataTableRowNumberColId\"\n :is-pinned=\"(item) => !!item.column.getColDef().lockPosition\"\n :is-pinnable=\"() => false\"\n :disable-dragging=\"query.length > 0\"\n disable-removing\n >\n <template #item-title=\"{ item }\">\n <span data-testid=\"pl-ag-grid-column-manager-item\">\n <span\n v-for=\"(segment, i) of segments.get(item.label)\"\n :key=\"i\"\n :class=\"{ [$style.match]: segment.match }\"\n >{{ segment.value }}</span\n >\n </span>\n </template>\n </PlElementList>\n </PlSlideModal>\n</template>\n\n<style module>\n.match {\n background-color: var(--color-active-select);\n border-radius: 2px;\n}\n\n.searchRow {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.searchRow > :first-child {\n flex: 1;\n}\n\n.toggleAllBtn {\n min-width: unset;\n opacity: 0.2;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgGridColumnManager.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgGridColumnManager.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"names":[],"mappings":"AAmLA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAMlD,KAAK,WAAW,GAAG;IACjB;;;;;OAKG;IACH,GAAG,EAAE,OAAO,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+SF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -4,52 +4,59 @@ import { useGridColumns as n } from "./useGridColumns.js";
|
|
|
4
4
|
import { Fragment as r, Teleport as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, normalizeClass as p, openBlock as m, ref as h, renderList as g, toDisplayString as _, unref as v, withCtx as y, withModifiers as b } from "vue";
|
|
5
5
|
import { PlBtnGhost as x, PlBtnSecondary as S, PlElementList as C, PlIcon24 as w, PlSearchField as T, PlSlideModal as E, usePlBlockPageTitleTeleportTarget as D } from "@milaboratories/uikit";
|
|
6
6
|
//#region src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue?vue&type=script&setup=true&lang.ts
|
|
7
|
-
var O = /* @__PURE__ */ f({
|
|
7
|
+
var O = { "data-testid": "pl-ag-grid-column-manager-item" }, k = /* @__PURE__ */ f({
|
|
8
8
|
__name: "PlAgGridColumnManager",
|
|
9
9
|
props: {
|
|
10
10
|
api: {},
|
|
11
11
|
width: {}
|
|
12
12
|
},
|
|
13
13
|
setup(f) {
|
|
14
|
-
let
|
|
15
|
-
items: a(() =>
|
|
14
|
+
let k = f, A = h(""), j = h(!1), M = D("PlAgGridColumnManager"), N = n(k), { filteredItems: P, segments: F } = t({
|
|
15
|
+
items: a(() => N.value.map((e, t) => ({
|
|
16
16
|
column: e,
|
|
17
17
|
id: e.getId(),
|
|
18
18
|
label: e.getColDef().headerName ?? `Unnamed Column (${t + 1})`
|
|
19
19
|
}))),
|
|
20
|
-
query:
|
|
20
|
+
query: A,
|
|
21
21
|
getStrings: (e) => [e.label]
|
|
22
|
-
}),
|
|
23
|
-
if (
|
|
24
|
-
let e =
|
|
25
|
-
t.length !== 0 &&
|
|
22
|
+
}), I = a(() => P.value.filter((t) => t.id !== e)), L = a(() => I.value.length > 0 && I.value.every((e) => !e.column.isVisible())), R = () => {
|
|
23
|
+
if (k.api.isDestroyed()) return;
|
|
24
|
+
let e = L.value, t = I.value.map((e) => e.column);
|
|
25
|
+
t.length !== 0 && k.api.setColumnsVisible(t, e);
|
|
26
26
|
};
|
|
27
|
-
return (t, n) => (m(), c(r, null, [v(
|
|
27
|
+
return (t, n) => (m(), c(r, null, [v(M) ? (m(), o(i, {
|
|
28
28
|
key: 0,
|
|
29
|
-
to: v(
|
|
29
|
+
to: v(M)
|
|
30
30
|
}, [d(v(x), {
|
|
31
|
+
"data-testid": "pl-ag-grid-column-manager",
|
|
31
32
|
icon: "columns",
|
|
32
|
-
onClick: n[0] ||= b((e) =>
|
|
33
|
+
onClick: n[0] ||= b((e) => j.value = !j.value, ["stop"])
|
|
33
34
|
}, {
|
|
34
35
|
default: y(() => [...n[3] ||= [u(" Columns ", -1)]]),
|
|
35
36
|
_: 1
|
|
36
37
|
})], 8, ["to"])) : s("", !0), d(v(E), {
|
|
37
|
-
modelValue:
|
|
38
|
-
"onUpdate:modelValue": n[2] ||= (e) =>
|
|
38
|
+
modelValue: j.value,
|
|
39
|
+
"onUpdate:modelValue": n[2] ||= (e) => j.value = e,
|
|
40
|
+
"data-testid": "pl-ag-grid-column-manager-panel",
|
|
39
41
|
width: f.width,
|
|
40
42
|
"close-on-outside-click": ""
|
|
41
43
|
}, {
|
|
42
44
|
title: y(() => [...n[4] ||= [u("Manage Columns", -1)]]),
|
|
43
|
-
default: y(() => [l("div", {
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
default: y(() => [l("div", {
|
|
46
|
+
"data-testid": "pl-ag-grid-column-manager-search-row",
|
|
47
|
+
class: p(t.$style.searchRow)
|
|
48
|
+
}, [d(v(T), {
|
|
49
|
+
modelValue: A.value,
|
|
50
|
+
"onUpdate:modelValue": n[1] ||= (e) => A.value = e,
|
|
51
|
+
"data-testid": "pl-ag-grid-column-manager-search",
|
|
46
52
|
clearable: ""
|
|
47
53
|
}, null, 8, ["modelValue"]), d(v(S), {
|
|
54
|
+
"data-testid": "pl-ag-grid-column-manager-toggle-all",
|
|
48
55
|
class: p(t.$style.toggleAllBtn),
|
|
49
|
-
disabled:
|
|
50
|
-
onClick: b(
|
|
56
|
+
disabled: I.value.length === 0,
|
|
57
|
+
onClick: b(R, ["stop"])
|
|
51
58
|
}, {
|
|
52
|
-
default: y(() => [
|
|
59
|
+
default: y(() => [L.value ? (m(), o(v(w), {
|
|
53
60
|
key: 0,
|
|
54
61
|
name: "view-show"
|
|
55
62
|
})) : (m(), o(v(w), {
|
|
@@ -58,27 +65,28 @@ var O = /* @__PURE__ */ f({
|
|
|
58
65
|
}))]),
|
|
59
66
|
_: 1
|
|
60
67
|
}, 8, ["class", "disabled"])], 2), d(v(C), {
|
|
61
|
-
|
|
68
|
+
"data-testid": "pl-ag-grid-column-manager-list",
|
|
69
|
+
items: v(P),
|
|
62
70
|
"get-item-key": (e) => e.id,
|
|
63
71
|
"is-draggable": (e) => !e.column.getColDef().lockPosition,
|
|
64
72
|
"on-sort": (e, t) => {
|
|
65
|
-
if (!
|
|
66
|
-
let n = v(
|
|
67
|
-
|
|
73
|
+
if (!k.api.isDestroyed()) {
|
|
74
|
+
let n = v(N)[e];
|
|
75
|
+
k.api.moveColumns([n], t);
|
|
68
76
|
}
|
|
69
77
|
return !0;
|
|
70
78
|
},
|
|
71
79
|
"on-toggle": (e) => {
|
|
72
|
-
|
|
80
|
+
k.api.isDestroyed() || k.api.setColumnsVisible([e.column], !e.column.isVisible());
|
|
73
81
|
},
|
|
74
82
|
"is-toggled": (e) => !e.column.isVisible(),
|
|
75
83
|
"is-toggable": (t) => t.id !== v(e),
|
|
76
84
|
"is-pinned": (e) => !!e.column.getColDef().lockPosition,
|
|
77
85
|
"is-pinnable": () => !1,
|
|
78
|
-
"disable-dragging":
|
|
86
|
+
"disable-dragging": A.value.length > 0,
|
|
79
87
|
"disable-removing": ""
|
|
80
88
|
}, {
|
|
81
|
-
"item-title": y(({ item: e }) => [l("span",
|
|
89
|
+
"item-title": y(({ item: e }) => [l("span", O, [(m(!0), c(r, null, g(v(F).get(e.label), (e, n) => (m(), c("span", {
|
|
82
90
|
key: n,
|
|
83
91
|
class: p({ [t.$style.match]: e.match })
|
|
84
92
|
}, _(e.value), 3))), 128))])]),
|
|
@@ -99,6 +107,6 @@ var O = /* @__PURE__ */ f({
|
|
|
99
107
|
}
|
|
100
108
|
});
|
|
101
109
|
//#endregion
|
|
102
|
-
export {
|
|
110
|
+
export { k as default };
|
|
103
111
|
|
|
104
112
|
//# sourceMappingURL=PlAgGridColumnManager.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgGridColumnManager.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlElementList,\n PlIcon24,\n PlSearchField,\n PlSlideModal,\n usePlBlockPageTitleTeleportTarget,\n} from \"@milaboratories/uikit\";\nimport { type GridApi } from \"ag-grid-enterprise\";\nimport { computed, ref } from \"vue\";\nimport { PlAgDataTableRowNumberColId } from \"../PlAgDataTable/sources/row-number\";\nimport { useFilteredItems } from \"./useFilteredItems\";\nimport { useGridColumns } from \"./useGridColumns\";\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst query = ref(\"\");\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlAgGridColumnManager\");\n\nconst columns = useGridColumns(props);\n\nconst items = computed(() => {\n return columns.value.map((col, i) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName ?? `Unnamed Column (${i + 1})`,\n }));\n});\n\nconst { filteredItems, segments } = useFilteredItems({\n items,\n query,\n getStrings: (item) => [item.label],\n});\n\nconst toggleableFilteredItems = computed(() =>\n filteredItems.value.filter((item) => item.id !== PlAgDataTableRowNumberColId),\n);\n\nconst allFilteredHidden = computed(\n () =>\n toggleableFilteredItems.value.length > 0 &&\n toggleableFilteredItems.value.every((item) => !item.column.isVisible()),\n);\n\nconst toggleAllFiltered = () => {\n if (props.api.isDestroyed()) return;\n const nextVisible = allFilteredHidden.value;\n const cols = toggleableFilteredItems.value.map((item) => item.column);\n if (cols.length === 0) return;\n props.api.setColumnsVisible(cols, nextVisible);\n};\n</script>\n\n<template>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost
|
|
1
|
+
{"version":3,"file":"PlAgGridColumnManager.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlElementList,\n PlIcon24,\n PlSearchField,\n PlSlideModal,\n usePlBlockPageTitleTeleportTarget,\n} from \"@milaboratories/uikit\";\nimport { type GridApi } from \"ag-grid-enterprise\";\nimport { computed, ref } from \"vue\";\nimport { PlAgDataTableRowNumberColId } from \"../PlAgDataTable/sources/row-number\";\nimport { useFilteredItems } from \"./useFilteredItems\";\nimport { useGridColumns } from \"./useGridColumns\";\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst query = ref(\"\");\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget(\"PlAgGridColumnManager\");\n\nconst columns = useGridColumns(props);\n\nconst items = computed(() => {\n return columns.value.map((col, i) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName ?? `Unnamed Column (${i + 1})`,\n }));\n});\n\nconst { filteredItems, segments } = useFilteredItems({\n items,\n query,\n getStrings: (item) => [item.label],\n});\n\nconst toggleableFilteredItems = computed(() =>\n filteredItems.value.filter((item) => item.id !== PlAgDataTableRowNumberColId),\n);\n\nconst allFilteredHidden = computed(\n () =>\n toggleableFilteredItems.value.length > 0 &&\n toggleableFilteredItems.value.every((item) => !item.column.isVisible()),\n);\n\nconst toggleAllFiltered = () => {\n if (props.api.isDestroyed()) return;\n const nextVisible = allFilteredHidden.value;\n const cols = toggleableFilteredItems.value.map((item) => item.column);\n if (cols.length === 0) return;\n props.api.setColumnsVisible(cols, nextVisible);\n};\n</script>\n\n<template>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost\n data-testid=\"pl-ag-grid-column-manager\"\n icon=\"columns\"\n @click.stop=\"slideModal = !slideModal\"\n >\n Columns\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal\n v-model=\"slideModal\"\n data-testid=\"pl-ag-grid-column-manager-panel\"\n :width=\"width\"\n close-on-outside-click\n >\n <template #title>Manage Columns</template>\n <div data-testid=\"pl-ag-grid-column-manager-search-row\" :class=\"$style.searchRow\">\n <PlSearchField v-model=\"query\" data-testid=\"pl-ag-grid-column-manager-search\" clearable />\n <PlBtnSecondary\n data-testid=\"pl-ag-grid-column-manager-toggle-all\"\n :class=\"$style.toggleAllBtn\"\n :disabled=\"toggleableFilteredItems.length === 0\"\n @click.stop=\"toggleAllFiltered\"\n >\n <PlIcon24 v-if=\"allFilteredHidden\" name=\"view-show\" />\n <PlIcon24 v-else name=\"view-hide\" />\n </PlBtnSecondary>\n </div>\n <PlElementList\n data-testid=\"pl-ag-grid-column-manager-list\"\n :items=\"filteredItems\"\n :get-item-key=\"(item) => item.id\"\n :is-draggable=\"(item) => !item.column.getColDef().lockPosition\"\n :on-sort=\"\n (fromIndex, toIndex) => {\n if (!props.api.isDestroyed()) {\n const columnToMove = columns[fromIndex];\n props.api.moveColumns([columnToMove], toIndex);\n }\n return true; // Let PlElementList handle the visual update\n }\n \"\n :on-toggle=\"\n (item) => {\n if (!props.api.isDestroyed()) {\n props.api.setColumnsVisible([item.column], !item.column.isVisible());\n }\n }\n \"\n :is-toggled=\"(item) => !item.column.isVisible()\"\n :is-toggable=\"(item) => item.id !== PlAgDataTableRowNumberColId\"\n :is-pinned=\"(item) => !!item.column.getColDef().lockPosition\"\n :is-pinnable=\"() => false\"\n :disable-dragging=\"query.length > 0\"\n disable-removing\n >\n <template #item-title=\"{ item }\">\n <span data-testid=\"pl-ag-grid-column-manager-item\">\n <span\n v-for=\"(segment, i) of segments.get(item.label)\"\n :key=\"i\"\n :class=\"{ [$style.match]: segment.match }\"\n >{{ segment.value }}</span\n >\n </span>\n </template>\n </PlElementList>\n </PlSlideModal>\n</template>\n\n<style module>\n.match {\n background-color: var(--color-active-select);\n border-radius: 2px;\n}\n\n.searchRow {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.searchRow > :first-child {\n flex: 1;\n}\n\n.toggleAllBtn {\n min-width: unset;\n opacity: 0.2;\n transition: opacity 0.3s;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;EAgBA,IAAM,IAAQ,GAcR,IAAQ,EAAI,GAAG,EACf,IAAa,EAAI,GAAM,EACvB,IAAiB,EAAkC,wBAAwB,EAE3E,IAAU,EAAe,EAAM,EAU/B,EAAE,kBAAe,gBAAa,EAAiB;GACnD,OATY,QACL,EAAQ,MAAM,KAAK,GAAK,OAAO;IACpC,QAAQ;IACR,IAAI,EAAI,OAAO;IACf,OAAO,EAAI,WAAW,CAAC,cAAc,mBAAmB,IAAI,EAAE;IAC/D,EAAE,CACH;GAIA;GACA,aAAa,MAAS,CAAC,EAAK,MAAM;GACnC,CAAC,EAEI,IAA0B,QAC9B,EAAc,MAAM,QAAQ,MAAS,EAAK,OAAO,EAA4B,CAC9E,EAEK,IAAoB,QAEtB,EAAwB,MAAM,SAAS,KACvC,EAAwB,MAAM,OAAO,MAAS,CAAC,EAAK,OAAO,WAAW,CAAC,CAC1E,EAEK,UAA0B;AAC9B,OAAI,EAAM,IAAI,aAAa,CAAE;GAC7B,IAAM,IAAc,EAAkB,OAChC,IAAO,EAAwB,MAAM,KAAK,MAAS,EAAK,OAAO;AACjE,KAAK,WAAW,KACpB,EAAM,IAAI,kBAAkB,GAAM,EAAY;;qCAK9B,EAAA,EAAc,IAAA,GAAA,EAA9B,EAQW,GAAA;;GARsB,IAAI,EAAA,EAAc;MACjD,EAMa,EAAA,EAAA,EAAA;GALX,eAAY;GACZ,MAAK;GACJ,SAAK,AAAA,EAAA,OAAA,GAAA,MAAO,EAAA,QAAU,CAAI,EAAA,OAAU,CAAA,OAAA,CAAA;;oBAGvC,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAFC,aAED,GAAA,CAAA,CAAA,CAAA;;gCAGF,EA0De,EAAA,EAAA,EAAA;eAzDJ,EAAA;4CAAU,QAAA;GACnB,eAAY;GACX,OAAO,EAAA;GACR,0BAAA;;GAEW,OAAK,QAAe,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAAd,kBAAc,GAAA,CAAA,CAAA,CAAA;oBAYzB,CAXN,EAWM,OAAA;IAXD,eAAY;IAAwC,OAAK,EAAEA,EAAAA,OAAO,UAAS;OAC9E,EAA0F,EAAA,EAAA,EAAA;gBAAlE,EAAA;6CAAK,QAAA;IAAE,eAAY;IAAmC,WAAA;gCAC9E,EAQiB,EAAA,EAAA,EAAA;IAPf,eAAY;IACX,OAAK,EAAEA,EAAAA,OAAO,aAAY;IAC1B,UAAU,EAAA,MAAwB,WAAM;IACxC,SAAK,EAAO,GAAiB,CAAA,OAAA,CAAA;;qBAEwB,CAAtC,EAAA,SAAA,GAAA,EAAhB,EAAsD,EAAA,EAAA,EAAA;;KAAnB,MAAK;gBACxC,EAAoC,EAAA,EAAA,EAAA;;KAAnB,MAAK;;;sCAG1B,EAsCgB,EAAA,EAAA,EAAA;IArCd,eAAY;IACX,OAAO,EAAA,EAAa;IACpB,iBAAe,MAAS,EAAK;IAC7B,iBAAe,MAAI,CAAM,EAAK,OAAO,WAAS,CAAG;IACjD,YAAmB,GAAW,MAAO;UAAsB,EAAM,IAAI,aAAW,EAAA;UAAwB,IAAe,EAAA,EAAO,CAAC;AAAwB,QAAM,IAAI,YAAW,CAAE,EAAY,EAAG,EAAO;;;;IASpM,cAAqB,MAAI;KAAsB,EAAM,IAAI,aAAW,IAAkB,EAAM,IAAI,kBAAiB,CAAE,EAAK,OAAM,EAAA,CAAI,EAAK,OAAO,WAAS,CAAA;;IAOvJ,eAAa,MAAI,CAAM,EAAK,OAAO,WAAS;IAC5C,gBAAc,MAAS,EAAK,OAAO,EAAA,EAA2B;IAC9D,cAAY,MAAI,CAAA,CAAO,EAAK,OAAO,WAAS,CAAG;IAC/C,qBAAa;IACb,oBAAkB,EAAA,MAAM,SAAM;IAC/B,oBAAA;;IAEW,cAAU,GAQZ,EARgB,cAAI,CAC3B,EAOO,QAPP,GAOO,EAAA,EAAA,GAAA,EANL,EAKC,GAAA,MAAA,EAJwB,EAAA,EAAQ,CAAC,IAAI,EAAK,MAAK,GAAtC,GAAS,YADnB,EAKC,QAAA;KAHE,KAAK;KACL,OAAK,EAAA,GAAKA,EAAAA,OAAO,QAAQ,EAAQ,OAAK,CAAA;SACnC,EAAQ,MAAK,EAAA,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumCheckbox.js","names":[],"sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from \"ag-grid-enterprise\";\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from \"vue\";\nimport $styles from \"./pl-ag-row-num-checkbox.module.scss\";\nimport { isSelectionEnabled } from \"../../lib\";\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener(\"rowSelected\", updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener(\"rowSelected\", updateSelection);\n});\n</script>\n\n<template>\n <div\n :class=\"[\n $styles.container,\n { [$styles['allowed-selection']]: allowedSelection },\n 'd-flex',\n 'justify-center',\n 'align-center',\n ]\"\n >\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumCheckbox.js","names":[],"sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from \"ag-grid-enterprise\";\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from \"vue\";\nimport $styles from \"./pl-ag-row-num-checkbox.module.scss\";\nimport { isSelectionEnabled } from \"../../lib\";\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener(\"rowSelected\", updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener(\"rowSelected\", updateSelection);\n});\n</script>\n\n<template>\n <div\n data-testid=\"pl-ag-row-num-checkbox\"\n :class=\"[\n $styles.container,\n { [$styles['allowed-selection']]: allowedSelection },\n 'd-flex',\n 'justify-center',\n 'align-center',\n ]\"\n >\n <div v-if=\"!isChecked\" data-testid=\"pl-ag-row-num-checkbox-value\" :class=\"[$styles.text]\">\n {{ params.value }}\n </div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n data-testid=\"pl-ag-row-num-checkbox-checkbox\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumCheckbox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumCheckbox.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAkGnD,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -17,19 +17,24 @@ var h = /* @__PURE__ */ o({
|
|
|
17
17
|
h.params.node.addEventListener("rowSelected", b);
|
|
18
18
|
}), l(() => {
|
|
19
19
|
h.params.node.removeEventListener("rowSelected", b);
|
|
20
|
-
}), (t, n) => (u(), a("div", {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
}), (t, n) => (u(), a("div", {
|
|
21
|
+
"data-testid": "pl-ag-row-num-checkbox",
|
|
22
|
+
class: s([
|
|
23
|
+
p(e).container,
|
|
24
|
+
{ [p(e)["allowed-selection"]]: y.value },
|
|
25
|
+
"d-flex",
|
|
26
|
+
"justify-center",
|
|
27
|
+
"align-center"
|
|
28
|
+
])
|
|
29
|
+
}, [_.value ? i("", !0) : (u(), a("div", {
|
|
27
30
|
key: 0,
|
|
31
|
+
"data-testid": "pl-ag-row-num-checkbox-value",
|
|
28
32
|
class: s([p(e).text])
|
|
29
33
|
}, f(o.params.value), 3)), v.value ? (u(), r(p(m), {
|
|
30
34
|
key: 1,
|
|
31
35
|
modelValue: _.value,
|
|
32
36
|
"onUpdate:modelValue": [n[0] ||= (e) => _.value = e, x],
|
|
37
|
+
"data-testid": "pl-ag-row-num-checkbox-checkbox",
|
|
33
38
|
class: s([p(e).checkbox, _.value && p(e).checked])
|
|
34
39
|
}, null, 8, ["modelValue", "class"])) : i("", !0)], 2));
|
|
35
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumCheckbox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from \"ag-grid-enterprise\";\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from \"vue\";\nimport $styles from \"./pl-ag-row-num-checkbox.module.scss\";\nimport { isSelectionEnabled } from \"../../lib\";\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener(\"rowSelected\", updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener(\"rowSelected\", updateSelection);\n});\n</script>\n\n<template>\n <div\n :class=\"[\n $styles.container,\n { [$styles['allowed-selection']]: allowedSelection },\n 'd-flex',\n 'justify-center',\n 'align-center',\n ]\"\n >\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumCheckbox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from \"ag-grid-enterprise\";\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from \"vue\";\nimport $styles from \"./pl-ag-row-num-checkbox.module.scss\";\nimport { isSelectionEnabled } from \"../../lib\";\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener(\"rowSelected\", updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener(\"rowSelected\", updateSelection);\n});\n</script>\n\n<template>\n <div\n data-testid=\"pl-ag-row-num-checkbox\"\n :class=\"[\n $styles.container,\n { [$styles['allowed-selection']]: allowedSelection },\n 'd-flex',\n 'justify-center',\n 'align-center',\n ]\"\n >\n <div v-if=\"!isChecked\" data-testid=\"pl-ag-row-num-checkbox-value\" :class=\"[$styles.text]\">\n {{ params.value }}\n </div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n data-testid=\"pl-ag-row-num-checkbox-checkbox\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;EAOA,IAAM,IAAQ,GAER,IAAM,EAAM,OAAO,KACnB,IAAY,EAAI,CAAC,CAAC,EAAM,OAAO,KAAK,YAAY,CAAC,EACjD,IAAoB,QAAe,EAAU,SAAS,EAAmB,EAAI,CAAC,EAC9E,IAAmB,EAAI,EAAmB,EAAI,CAAC,EAE/C,UAAwB;AAC5B,KAAU,QAAQ,EAAM,OAAO,KAAK,YAAY,KAAK;KAGjD,KAAgB,MAAiB;AACrC,GAAI,EAAmB,EAAI,KACzB,EAAM,OAAO,KAAK,YAAY,EAAI,EAClC,GAAiB;;SAIrB,QAAoB;AAClB,KAAM,OAAO,KAAK,iBAAiB,eAAe,EAAgB;IAClE,EAEF,QAAsB;AACpB,KAAM,OAAO,KAAK,oBAAoB,eAAe,EAAgB;IACrE,kBAIA,EAoBM,OAAA;GAnBJ,eAAY;GACX,OAAK,EAAA;IAAU,EAAA,EAAO,CAAC;OAAoB,EAAA,EAAO,CAAA,uBAAwB,EAAA,OAAgB;;;;;MAQ/E,EAAA,QACK,EAAA,IAAA,GAAA,IADL,GAAA,EAAZ,EAEM,OAAA;;GAFiB,eAAY;GAAgC,OAAK,EAAA,CAAG,EAAA,EAAO,CAAC,KAAI,CAAA;OAClF,EAAA,OAAO,MAAK,EAAA,EAAA,GAGT,EAAA,SAAA,GAAA,EADR,EAME,EAAA,EAAA,EAAA;;eAJS,EAAA;6CAAS,QAAA,GAGE,EAAA;GAFpB,eAAY;GACX,OAAK,EAAA,CAAG,EAAA,EAAO,CAAC,UAAU,EAAA,SAAa,EAAA,EAAO,CAAC,QAAO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumHeader.js","names":[],"sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport type { IHeaderParams } from \"ag-grid-enterprise\";\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from \"vue\";\nimport {\n deselectAll,\n getSelectedRowsCount,\n getTotalRowsCount,\n isSelectionEnabled,\n selectAll,\n} from \"../lib\";\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() => selectedRowCount.value > 0);\n\nconst allRowsSelected = computed(\n () => someRowsSelected.value && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener(\"selectionChanged\", updateRowCounts);\n params.api.addEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.addEventListener(\"modelUpdated\", updateRowCounts);\n params.api.addEventListener(\"stateUpdated\", updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener(\"selectionChanged\", updateRowCounts);\n params.api.removeEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.removeEventListener(\"modelUpdated\", updateRowCounts);\n params.api.removeEventListener(\"stateUpdated\", updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PlAgRowNumHeader.js","names":[],"sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport type { IHeaderParams } from \"ag-grid-enterprise\";\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from \"vue\";\nimport {\n deselectAll,\n getSelectedRowsCount,\n getTotalRowsCount,\n isSelectionEnabled,\n selectAll,\n} from \"../lib\";\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() => selectedRowCount.value > 0);\n\nconst allRowsSelected = computed(\n () => someRowsSelected.value && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener(\"selectionChanged\", updateRowCounts);\n params.api.addEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.addEventListener(\"modelUpdated\", updateRowCounts);\n params.api.addEventListener(\"stateUpdated\", updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener(\"selectionChanged\", updateRowCounts);\n params.api.removeEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.removeEventListener(\"modelUpdated\", updateRowCounts);\n params.api.removeEventListener(\"stateUpdated\", updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n data-testid=\"pl-ag-row-num-header\"\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n data-testid=\"pl-ag-row-num-header-checkbox\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else data-testid=\"pl-ag-row-num-header-label\">\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumHeader.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlAgRowNumHeader.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumHeader.vue.d.ts","sourceRoot":"","sources":["../../src/components/PlAgRowNumHeader.vue"],"names":[],"mappings":"AAqFA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUxD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,aAAa,CAAC;CACvB,CAAC;AAyGF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -3,13 +3,19 @@ import "../lib.js";
|
|
|
3
3
|
import { computed as a, createBlock as o, createElementBlock as s, defineComponent as c, onBeforeMount as l, onBeforeUnmount as u, openBlock as d, ref as f, toDisplayString as p, unref as m } from "vue";
|
|
4
4
|
import { PlCheckbox as h } from "@milaboratories/uikit";
|
|
5
5
|
//#region src/components/PlAgRowNumHeader.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
-
var g = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
var g = {
|
|
7
|
+
"data-testid": "pl-ag-row-num-header",
|
|
8
|
+
style: {
|
|
9
|
+
position: "absolute",
|
|
10
|
+
inset: "0",
|
|
11
|
+
display: "flex",
|
|
12
|
+
"justify-content": "center",
|
|
13
|
+
"align-items": "center"
|
|
14
|
+
}
|
|
15
|
+
}, _ = {
|
|
16
|
+
key: 1,
|
|
17
|
+
"data-testid": "pl-ag-row-num-header-label"
|
|
18
|
+
}, v = /* @__PURE__ */ c({
|
|
13
19
|
__name: "PlAgRowNumHeader",
|
|
14
20
|
props: { params: {} },
|
|
15
21
|
setup(c) {
|
|
@@ -29,6 +35,7 @@ var g = { style: {
|
|
|
29
35
|
c.params.api.removeEventListener("selectionChanged", w), c.params.api.removeEventListener("rowDataUpdated", w), c.params.api.removeEventListener("modelUpdated", w), c.params.api.removeEventListener("stateUpdated", T);
|
|
30
36
|
}), (e, t) => (d(), s("div", g, [b.value ? (d(), o(m(h), {
|
|
31
37
|
key: 0,
|
|
38
|
+
"data-testid": "pl-ag-row-num-header-checkbox",
|
|
32
39
|
"model-value": x.value,
|
|
33
40
|
indeterminate: x.value && !S.value,
|
|
34
41
|
"onUpdate:modelValue": C
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumHeader.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport type { IHeaderParams } from \"ag-grid-enterprise\";\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from \"vue\";\nimport {\n deselectAll,\n getSelectedRowsCount,\n getTotalRowsCount,\n isSelectionEnabled,\n selectAll,\n} from \"../lib\";\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() => selectedRowCount.value > 0);\n\nconst allRowsSelected = computed(\n () => someRowsSelected.value && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener(\"selectionChanged\", updateRowCounts);\n params.api.addEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.addEventListener(\"modelUpdated\", updateRowCounts);\n params.api.addEventListener(\"stateUpdated\", updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener(\"selectionChanged\", updateRowCounts);\n params.api.removeEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.removeEventListener(\"modelUpdated\", updateRowCounts);\n params.api.removeEventListener(\"stateUpdated\", updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumHeader.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from \"@milaboratories/uikit\";\nimport type { IHeaderParams } from \"ag-grid-enterprise\";\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from \"vue\";\nimport {\n deselectAll,\n getSelectedRowsCount,\n getTotalRowsCount,\n isSelectionEnabled,\n selectAll,\n} from \"../lib\";\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() => selectedRowCount.value > 0);\n\nconst allRowsSelected = computed(\n () => someRowsSelected.value && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener(\"selectionChanged\", updateRowCounts);\n params.api.addEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.addEventListener(\"modelUpdated\", updateRowCounts);\n params.api.addEventListener(\"stateUpdated\", updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener(\"selectionChanged\", updateRowCounts);\n params.api.removeEventListener(\"rowDataUpdated\", updateRowCounts);\n params.api.removeEventListener(\"modelUpdated\", updateRowCounts);\n params.api.removeEventListener(\"stateUpdated\", updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n data-testid=\"pl-ag-row-num-header\"\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n data-testid=\"pl-ag-row-num-header-checkbox\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else data-testid=\"pl-ag-row-num-header-label\">\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;EAgBA,IAAM,IAAmB,EAAI,EAAqB,EAAA,OAAO,IAAI,CAAC,EACxD,IAAgB,EAAI,EAAkB,EAAA,OAAO,IAAI,CAAC,EAClD,IAAe,EAAI,EAAmB,EAAA,OAAO,IAAI,CAAC,EAElD,IAAmB,QAAe,EAAiB,QAAQ,EAAE,EAE7D,IAAkB,QAChB,EAAiB,SAAS,EAAiB,UAAU,EAAc,MAC1E;EAED,SAAS,IAAkB;AACzB,GAAI,EAAiB,QACnB,EAAY,EAAA,OAAO,IAAI,GAEvB,EAAU,EAAA,OAAO,IAAI;;EAIzB,SAAS,IAAkB;AAEzB,GADA,EAAiB,QAAQ,EAAqB,EAAA,OAAO,IAAI,EACzD,EAAc,QAAQ,EAAkB,EAAA,OAAO,IAAI;;EAGrD,SAAS,IAAqB;AAC5B,KAAa,QAAQ,EAAmB,EAAA,OAAO,IAAI;;SAGrD,QAAoB;AAIlB,GAHA,EAAA,OAAO,IAAI,iBAAiB,oBAAoB,EAAgB,EAChE,EAAA,OAAO,IAAI,iBAAiB,kBAAkB,EAAgB,EAC9D,EAAA,OAAO,IAAI,iBAAiB,gBAAgB,EAAgB,EAC5D,EAAA,OAAO,IAAI,iBAAiB,gBAAgB,EAAmB;IAC/D,EAEF,QAAsB;AAIpB,GAHA,EAAA,OAAO,IAAI,oBAAoB,oBAAoB,EAAgB,EACnE,EAAA,OAAO,IAAI,oBAAoB,kBAAkB,EAAgB,EACjE,EAAA,OAAO,IAAI,oBAAoB,gBAAgB,EAAgB,EAC/D,EAAA,OAAO,IAAI,oBAAoB,gBAAgB,EAAmB;IAClE,kBAIA,EAoBM,OApBN,GAoBM,CATI,EAAA,SAAA,GAAA,EADR,EAME,EAAA,EAAA,EAAA;;GAJA,eAAY;GACX,eAAa,EAAA;GACb,eAAe,EAAA,SAAgB,CAAK,EAAA;GACpC,uBAAoB;yDAEvB,EAEO,QAFP,GAEO,EADF,EAAA,OAAO,YAAW,EAAA,EAAA,EAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgTextAndButtonCell.js","names":[],"sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams, RowDoubleClickedEvent } from \"ag-grid-enterprise\";\nimport type { MaskIconName16 } from \"@milaboratories/uikit\";\nimport { PlMaskIcon16 } from \"@milaboratories/uikit\";\nimport \"./pl-ag-text-and-button-cell.scss\";\n\nconst props = defineProps<{\n params: ICellRendererParams & {\n /**\n * Button icon MaskIconName16\n */\n icon?: MaskIconName16;\n /**\n * Button label\n */\n btnLabel?: string;\n /**\n * If invokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row. In this case,\n * the handler passed to the component is not called, even if it is defined.\n *\n * If invokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but the provided handler will be called, receiving\n * the ICellRendererParams as an argument.\n */\n invokeRowsOnDoubleClick?: boolean;\n /**\n * plHandler parameter is a click handler that is invoked when\n * the invokeRowsOnDoubleClick property is set to false.\n */\n onClick?: (params: ICellRendererParams) => void;\n };\n}>();\n\nfunction triggerRowDoubleClick() {\n if (props.params.invokeRowsOnDoubleClick) {\n const gridApi = props.params.api;\n\n const event: RowDoubleClickedEvent = {\n rowPinned: props.params.node.rowPinned,\n api: gridApi,\n rowIndex: props.params.node.rowIndex,\n context: gridApi,\n type: \"rowDoubleClicked\",\n node: props.params.node,\n data: props.params.data,\n event: null,\n };\n\n gridApi.dispatchEvent(event);\n } else {\n props.params.onClick?.(props.params);\n }\n}\n</script>\n<template>\n <div class=\"pl-ag-grid-open-cell d-flex\">\n <div class=\"pl-ag-grid-open-cell__value\">\n {{ params.value }}\n </div>\n <div\n class=\"pl-ag-grid-open-cell__activator text-caps11 align-center\"\n @click.stop=\"triggerRowDoubleClick\"\n >\n <PlMaskIcon16 :name=\"params.icon ?? 'maximize'\" />\n {{ params.btnLabel ?? \"Open\" }}\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"PlAgTextAndButtonCell.js","names":[],"sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams, RowDoubleClickedEvent } from \"ag-grid-enterprise\";\nimport type { MaskIconName16 } from \"@milaboratories/uikit\";\nimport { PlMaskIcon16 } from \"@milaboratories/uikit\";\nimport \"./pl-ag-text-and-button-cell.scss\";\n\nconst props = defineProps<{\n params: ICellRendererParams & {\n /**\n * Button icon MaskIconName16\n */\n icon?: MaskIconName16;\n /**\n * Button label\n */\n btnLabel?: string;\n /**\n * If invokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row. In this case,\n * the handler passed to the component is not called, even if it is defined.\n *\n * If invokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but the provided handler will be called, receiving\n * the ICellRendererParams as an argument.\n */\n invokeRowsOnDoubleClick?: boolean;\n /**\n * plHandler parameter is a click handler that is invoked when\n * the invokeRowsOnDoubleClick property is set to false.\n */\n onClick?: (params: ICellRendererParams) => void;\n };\n}>();\n\nfunction triggerRowDoubleClick() {\n if (props.params.invokeRowsOnDoubleClick) {\n const gridApi = props.params.api;\n\n const event: RowDoubleClickedEvent = {\n rowPinned: props.params.node.rowPinned,\n api: gridApi,\n rowIndex: props.params.node.rowIndex,\n context: gridApi,\n type: \"rowDoubleClicked\",\n node: props.params.node,\n data: props.params.data,\n event: null,\n };\n\n gridApi.dispatchEvent(event);\n } else {\n props.params.onClick?.(props.params);\n }\n}\n</script>\n<template>\n <div data-testid=\"pl-ag-text-and-button-cell\" class=\"pl-ag-grid-open-cell d-flex\">\n <div data-testid=\"pl-ag-text-and-button-cell-value\" class=\"pl-ag-grid-open-cell__value\">\n {{ params.value }}\n </div>\n <div\n data-testid=\"pl-ag-text-and-button-cell-button\"\n class=\"pl-ag-grid-open-cell__activator text-caps11 align-center\"\n @click.stop=\"triggerRowDoubleClick\"\n >\n <PlMaskIcon16 :name=\"params.icon ?? 'maximize'\" />\n {{ params.btnLabel ?? \"Open\" }}\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgTextAndButtonCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgTextAndButtonCell.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EAAE,mBAAmB,EAAyB,MAAM,oBAAoB,CAAC;AACrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,mCAAmC,CAAC;AAE3C,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,mBAAmB,GAAG;QAC5B;;WAEG;QACH,IAAI,CAAC,EAAE,cAAc,CAAC;QACtB;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;;;;;;;WAQG;QACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;KACjD,CAAC;CACH,CAAC;AA6EF,QAAA,MAAM,YAAY,kSAEhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -2,7 +2,13 @@ import './pl-ag-text-and-button-cell.css';/* empty css
|
|
|
2
2
|
import { createElementBlock as e, createElementVNode as t, createTextVNode as n, createVNode as r, defineComponent as i, openBlock as a, toDisplayString as o, unref as s, withModifiers as c } from "vue";
|
|
3
3
|
import { PlMaskIcon16 as l } from "@milaboratories/uikit";
|
|
4
4
|
//#region src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
-
var u = {
|
|
5
|
+
var u = {
|
|
6
|
+
"data-testid": "pl-ag-text-and-button-cell",
|
|
7
|
+
class: "pl-ag-grid-open-cell d-flex"
|
|
8
|
+
}, d = {
|
|
9
|
+
"data-testid": "pl-ag-text-and-button-cell-value",
|
|
10
|
+
class: "pl-ag-grid-open-cell__value"
|
|
11
|
+
}, f = /* @__PURE__ */ i({
|
|
6
12
|
__name: "PlAgTextAndButtonCell",
|
|
7
13
|
props: { params: {} },
|
|
8
14
|
setup(i) {
|
|
@@ -23,6 +29,7 @@ var u = { class: "pl-ag-grid-open-cell d-flex" }, d = { class: "pl-ag-grid-open-
|
|
|
23
29
|
} else f.params.onClick?.(f.params);
|
|
24
30
|
}
|
|
25
31
|
return (f, m) => (a(), e("div", u, [t("div", d, o(i.params.value), 1), t("div", {
|
|
32
|
+
"data-testid": "pl-ag-text-and-button-cell-button",
|
|
26
33
|
class: "pl-ag-grid-open-cell__activator text-caps11 align-center",
|
|
27
34
|
onClick: c(p, ["stop"])
|
|
28
35
|
}, [r(s(l), { name: i.params.icon ?? "maximize" }, null, 8, ["name"]), n(" " + o(i.params.btnLabel ?? "Open"), 1)])]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgTextAndButtonCell.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams, RowDoubleClickedEvent } from \"ag-grid-enterprise\";\nimport type { MaskIconName16 } from \"@milaboratories/uikit\";\nimport { PlMaskIcon16 } from \"@milaboratories/uikit\";\nimport \"./pl-ag-text-and-button-cell.scss\";\n\nconst props = defineProps<{\n params: ICellRendererParams & {\n /**\n * Button icon MaskIconName16\n */\n icon?: MaskIconName16;\n /**\n * Button label\n */\n btnLabel?: string;\n /**\n * If invokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row. In this case,\n * the handler passed to the component is not called, even if it is defined.\n *\n * If invokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but the provided handler will be called, receiving\n * the ICellRendererParams as an argument.\n */\n invokeRowsOnDoubleClick?: boolean;\n /**\n * plHandler parameter is a click handler that is invoked when\n * the invokeRowsOnDoubleClick property is set to false.\n */\n onClick?: (params: ICellRendererParams) => void;\n };\n}>();\n\nfunction triggerRowDoubleClick() {\n if (props.params.invokeRowsOnDoubleClick) {\n const gridApi = props.params.api;\n\n const event: RowDoubleClickedEvent = {\n rowPinned: props.params.node.rowPinned,\n api: gridApi,\n rowIndex: props.params.node.rowIndex,\n context: gridApi,\n type: \"rowDoubleClicked\",\n node: props.params.node,\n data: props.params.data,\n event: null,\n };\n\n gridApi.dispatchEvent(event);\n } else {\n props.params.onClick?.(props.params);\n }\n}\n</script>\n<template>\n <div class=\"pl-ag-grid-open-cell d-flex\">\n <div class=\"pl-ag-grid-open-cell__value\">\n {{ params.value }}\n </div>\n <div\n class=\"pl-ag-grid-open-cell__activator text-caps11 align-center\"\n @click.stop=\"triggerRowDoubleClick\"\n >\n <PlMaskIcon16 :name=\"params.icon ?? 'maximize'\" />\n {{ params.btnLabel ?? \"Open\" }}\n </div>\n </div>\n</template>\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgTextAndButtonCell.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams, RowDoubleClickedEvent } from \"ag-grid-enterprise\";\nimport type { MaskIconName16 } from \"@milaboratories/uikit\";\nimport { PlMaskIcon16 } from \"@milaboratories/uikit\";\nimport \"./pl-ag-text-and-button-cell.scss\";\n\nconst props = defineProps<{\n params: ICellRendererParams & {\n /**\n * Button icon MaskIconName16\n */\n icon?: MaskIconName16;\n /**\n * Button label\n */\n btnLabel?: string;\n /**\n * If invokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row. In this case,\n * the handler passed to the component is not called, even if it is defined.\n *\n * If invokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but the provided handler will be called, receiving\n * the ICellRendererParams as an argument.\n */\n invokeRowsOnDoubleClick?: boolean;\n /**\n * plHandler parameter is a click handler that is invoked when\n * the invokeRowsOnDoubleClick property is set to false.\n */\n onClick?: (params: ICellRendererParams) => void;\n };\n}>();\n\nfunction triggerRowDoubleClick() {\n if (props.params.invokeRowsOnDoubleClick) {\n const gridApi = props.params.api;\n\n const event: RowDoubleClickedEvent = {\n rowPinned: props.params.node.rowPinned,\n api: gridApi,\n rowIndex: props.params.node.rowIndex,\n context: gridApi,\n type: \"rowDoubleClicked\",\n node: props.params.node,\n data: props.params.data,\n event: null,\n };\n\n gridApi.dispatchEvent(event);\n } else {\n props.params.onClick?.(props.params);\n }\n}\n</script>\n<template>\n <div data-testid=\"pl-ag-text-and-button-cell\" class=\"pl-ag-grid-open-cell d-flex\">\n <div data-testid=\"pl-ag-text-and-button-cell-value\" class=\"pl-ag-grid-open-cell__value\">\n {{ params.value }}\n </div>\n <div\n data-testid=\"pl-ag-text-and-button-cell-button\"\n class=\"pl-ag-grid-open-cell__activator text-caps11 align-center\"\n @click.stop=\"triggerRowDoubleClick\"\n >\n <PlMaskIcon16 :name=\"params.icon ?? 'maximize'\" />\n {{ params.btnLabel ?? \"Open\" }}\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;EAMA,IAAM,IAAQ;EA4Bd,SAAS,IAAwB;AAC/B,OAAI,EAAM,OAAO,yBAAyB;IACxC,IAAM,IAAU,EAAM,OAAO,KAEvB,IAA+B;KACnC,WAAW,EAAM,OAAO,KAAK;KAC7B,KAAK;KACL,UAAU,EAAM,OAAO,KAAK;KAC5B,SAAS;KACT,MAAM;KACN,MAAM,EAAM,OAAO;KACnB,MAAM,EAAM,OAAO;KACnB,OAAO;KACR;AAED,MAAQ,cAAc,EAAM;SAE5B,GAAM,OAAO,UAAU,EAAM,OAAO;;yBAKtC,EAYM,OAZN,GAYM,CAXJ,EAEM,OAFN,GAEM,EADD,EAAA,OAAO,MAAK,EAAA,EAAA,EAEjB,EAOM,OAAA;GANJ,eAAY;GACZ,OAAM;GACL,SAAK,EAAO,GAAqB,CAAA,OAAA,CAAA;MAElC,EAAkD,EAAA,EAAA,EAAA,EAAnC,MAAM,EAAA,OAAO,QAAI,YAAA,EAAA,MAAA,GAAA,CAAA,OAAA,CAAA,EAAA,EAAkB,MAClD,EAAG,EAAA,OAAO,YAAQ,OAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.js","names":[],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.js","names":[],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem data-testid=\"pl-annotations-schema\">\n <template #header-content>\n <PlEditableTitle\n data-testid=\"pl-annotations-schema-title\"\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div\n data-testid=\"pl-annotations-schema-body\"\n :class=\"[$style.root, { [$commonStyle.disabled]: props.annotation.title.length === 0 }]\"\n >\n <span data-testid=\"pl-annotations-schema-tip\" :class=\"$style.tip\">\n Above annotations override the ones below. Rearrange them by dragging.\n </span>\n <PlElementList\n data-testid=\"pl-annotations-steps\"\n :items=\"props.annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === props.selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @update:items=\"updateSteps\"\n @item-click=\"(item) => props.onUpdateSelectedStepId(item.id)\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlBtnSecondary data-testid=\"pl-annotations-add-label\" icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n\n <PlTextField\n data-testid=\"pl-annotations-default-value\"\n :class=\"[\n $style.defaultValue,\n { [$style.emptyDefaultValue]: isEmpty(props.annotation.defaultValue) },\n ]\"\n :model-value=\"props.annotation.defaultValue ?? ''\"\n label=\"Label remaining with\"\n placeholder=\"No label\"\n clearable\n helper=\"This label will be applied to the remaining rows, after all other filters are applied.\"\n @click.stop\n @update:model-value=\"updateDefaultValue\"\n />\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n data-testid=\"pl-annotations-delete-schema\"\n icon=\"delete-bin\"\n reverse\n :disabled=\"props.annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use \"@milaboratories/uikit/styles/variables\" as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n\n.defaultValue {\n margin-top: 8px;\n}\n.emptyDefaultValue {\n opacity: 0.5;\n transition: opacity 0.2s ease-in-out;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.vue_vue_type_style_index_0_lang.module.js","names":[],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.vue_vue_type_style_index_0_lang.module.js","names":[],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem data-testid=\"pl-annotations-schema\">\n <template #header-content>\n <PlEditableTitle\n data-testid=\"pl-annotations-schema-title\"\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div\n data-testid=\"pl-annotations-schema-body\"\n :class=\"[$style.root, { [$commonStyle.disabled]: props.annotation.title.length === 0 }]\"\n >\n <span data-testid=\"pl-annotations-schema-tip\" :class=\"$style.tip\">\n Above annotations override the ones below. Rearrange them by dragging.\n </span>\n <PlElementList\n data-testid=\"pl-annotations-steps\"\n :items=\"props.annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === props.selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @update:items=\"updateSteps\"\n @item-click=\"(item) => props.onUpdateSelectedStepId(item.id)\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlBtnSecondary data-testid=\"pl-annotations-add-label\" icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n\n <PlTextField\n data-testid=\"pl-annotations-default-value\"\n :class=\"[\n $style.defaultValue,\n { [$style.emptyDefaultValue]: isEmpty(props.annotation.defaultValue) },\n ]\"\n :model-value=\"props.annotation.defaultValue ?? ''\"\n label=\"Label remaining with\"\n placeholder=\"No label\"\n clearable\n helper=\"This label will be applied to the remaining rows, after all other filters are applied.\"\n @click.stop\n @update:model-value=\"updateDefaultValue\"\n />\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n data-testid=\"pl-annotations-delete-schema\"\n icon=\"delete-bin\"\n reverse\n :disabled=\"props.annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use \"@milaboratories/uikit/styles/variables\" as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n\n.defaultValue {\n margin-top: 8px;\n}\n.emptyDefaultValue {\n opacity: 0.5;\n transition: opacity 0.2s ease-in-out;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"AA6LA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,KAAK,WAAW,GAAG;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,SAAS,GAAG,MAAM,CAAC;IACnC,kBAAkB,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD,sBAAsB,EAAE,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC;CAC1D,CAAC;AAqTF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -50,8 +50,9 @@ var C = /* @__PURE__ */ l({
|
|
|
50
50
|
});
|
|
51
51
|
}), w.onUpdateSelectedStepId(t);
|
|
52
52
|
}
|
|
53
|
-
return (e, r) => (d(), i(p(b),
|
|
53
|
+
return (e, r) => (d(), i(p(b), { "data-testid": "pl-annotations-schema" }, o({
|
|
54
54
|
"header-content": m(() => [c(p(v), {
|
|
55
|
+
"data-testid": "pl-annotations-schema-title",
|
|
55
56
|
"model-value": w.annotation.title,
|
|
56
57
|
class: u({ [p(t).flashing]: w.annotation.title.length === 0 }),
|
|
57
58
|
"max-length": 40,
|
|
@@ -67,6 +68,7 @@ var C = /* @__PURE__ */ l({
|
|
|
67
68
|
"validate"
|
|
68
69
|
])]),
|
|
69
70
|
"footer-content": m(() => [c(p(g), {
|
|
71
|
+
"data-testid": "pl-annotations-delete-schema",
|
|
70
72
|
icon: "delete-bin",
|
|
71
73
|
reverse: "",
|
|
72
74
|
disabled: w.annotation.steps.length === 0,
|
|
@@ -78,9 +80,16 @@ var C = /* @__PURE__ */ l({
|
|
|
78
80
|
_: 2
|
|
79
81
|
}, [w.annotation ? {
|
|
80
82
|
name: "body-content",
|
|
81
|
-
fn: m(() => [a("div", {
|
|
82
|
-
|
|
83
|
+
fn: m(() => [a("div", {
|
|
84
|
+
"data-testid": "pl-annotations-schema-body",
|
|
85
|
+
class: u([e.$style.root, { [p(t).disabled]: w.annotation.title.length === 0 }])
|
|
86
|
+
}, [
|
|
87
|
+
a("span", {
|
|
88
|
+
"data-testid": "pl-annotations-schema-tip",
|
|
89
|
+
class: u(e.$style.tip)
|
|
90
|
+
}, " Above annotations override the ones below. Rearrange them by dragging. ", 2),
|
|
83
91
|
c(p(y), {
|
|
92
|
+
"data-testid": "pl-annotations-steps",
|
|
84
93
|
items: w.annotation.steps,
|
|
85
94
|
"get-item-key": (e) => e.id,
|
|
86
95
|
"is-active": (e) => e.id === w.selectedStepId,
|
|
@@ -99,6 +108,7 @@ var C = /* @__PURE__ */ l({
|
|
|
99
108
|
"class"
|
|
100
109
|
]),
|
|
101
110
|
c(p(_), {
|
|
111
|
+
"data-testid": "pl-annotations-add-label",
|
|
102
112
|
icon: "add",
|
|
103
113
|
onClick: A
|
|
104
114
|
}, {
|
|
@@ -106,6 +116,7 @@ var C = /* @__PURE__ */ l({
|
|
|
106
116
|
_: 1
|
|
107
117
|
}),
|
|
108
118
|
c(p(x), {
|
|
119
|
+
"data-testid": "pl-annotations-default-value",
|
|
109
120
|
class: u([e.$style.defaultValue, { [e.$style.emptyDefaultValue]: p(S)(w.annotation.defaultValue) }]),
|
|
110
121
|
"model-value": w.annotation.defaultValue ?? "",
|
|
111
122
|
label: "Label remaining with",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnnotationsSidebar.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div
|
|
1
|
+
{"version":3,"file":"AnnotationsSidebar.vue_vue_type_script_setup_true_lang.js","names":["$style"],"sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from \"./style.module.css\";\n\nimport { produce } from \"immer\";\nimport { randomInt } from \"@milaboratories/helpers\";\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from \"@milaboratories/uikit\";\nimport type { Annotation } from \"../types\";\nimport { validateTitle } from \"../utils\";\nimport { isEmpty } from \"es-toolkit/compat\";\n\nconst props = defineProps<{\n annotation: Annotation;\n selectedStepId: undefined | number;\n onUpdateAnnotation: (annotation: Annotation) => void;\n onUpdateSelectedStepId: (id: undefined | number) => void;\n}>();\n\nconst emits = defineEmits<{\n (e: \"delete-schema\"): void;\n}>();\n\nfunction produceAnnotationUpdate(updater: (draft: Annotation) => void) {\n props.onUpdateAnnotation(produce(props.annotation, updater));\n}\n\nfunction updateTitle(title: string | undefined) {\n produceAnnotationUpdate((draft) => {\n draft.title = title ?? \"\";\n });\n}\n\nfunction updateSteps(steps: Annotation[\"steps\"]) {\n produceAnnotationUpdate((draft) => {\n draft.steps = steps;\n });\n}\n\nfunction updateDefaultValue(value: string) {\n produceAnnotationUpdate((draft) => {\n draft.defaultValue = value === \"\" ? undefined : value;\n });\n}\n\nfunction handleAddStep() {\n const id = randomInt();\n produceAnnotationUpdate((draft) => {\n draft.steps.push({\n id,\n label: \"\",\n filter: {\n id: randomInt(),\n type: \"and\",\n filters: [],\n },\n });\n });\n props.onUpdateSelectedStepId(id);\n}\n</script>\n\n<template>\n <PlSidebarItem data-testid=\"pl-annotations-schema\">\n <template #header-content>\n <PlEditableTitle\n data-testid=\"pl-annotations-schema-title\"\n :model-value=\"props.annotation.title\"\n :class=\"{ [$commonStyle.flashing]: props.annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"props.annotation.title.length === 0\"\n :validate=\"validateTitle\"\n @update:model-value=\"updateTitle\"\n />\n </template>\n <template v-if=\"props.annotation\" #body-content>\n <div\n data-testid=\"pl-annotations-schema-body\"\n :class=\"[$style.root, { [$commonStyle.disabled]: props.annotation.title.length === 0 }]\"\n >\n <span data-testid=\"pl-annotations-schema-tip\" :class=\"$style.tip\">\n Above annotations override the ones below. Rearrange them by dragging.\n </span>\n <PlElementList\n data-testid=\"pl-annotations-steps\"\n :items=\"props.annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === props.selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @update:items=\"updateSteps\"\n @item-click=\"(item) => props.onUpdateSelectedStepId(item.id)\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlBtnSecondary data-testid=\"pl-annotations-add-label\" icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n\n <PlTextField\n data-testid=\"pl-annotations-default-value\"\n :class=\"[\n $style.defaultValue,\n { [$style.emptyDefaultValue]: isEmpty(props.annotation.defaultValue) },\n ]\"\n :model-value=\"props.annotation.defaultValue ?? ''\"\n label=\"Label remaining with\"\n placeholder=\"No label\"\n clearable\n helper=\"This label will be applied to the remaining rows, after all other filters are applied.\"\n @click.stop\n @update:model-value=\"updateDefaultValue\"\n />\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n data-testid=\"pl-annotations-delete-schema\"\n icon=\"delete-bin\"\n reverse\n :disabled=\"props.annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use \"@milaboratories/uikit/styles/variables\" as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n\n.defaultValue {\n margin-top: 8px;\n}\n.emptyDefaultValue {\n opacity: 0.5;\n transition: opacity 0.2s ease-in-out;\n\n &:hover {\n opacity: 1;\n }\n}\n</style>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAiBA,IAAM,IAAQ,GAOR,IAAQ;EAId,SAAS,EAAwB,GAAsC;AACrE,KAAM,mBAAmB,EAAQ,EAAM,YAAY,EAAQ,CAAC;;EAG9D,SAAS,EAAY,GAA2B;AAC9C,MAAyB,MAAU;AACjC,MAAM,QAAQ,KAAS;KACvB;;EAGJ,SAAS,EAAY,GAA4B;AAC/C,MAAyB,MAAU;AACjC,MAAM,QAAQ;KACd;;EAGJ,SAAS,EAAmB,GAAe;AACzC,MAAyB,MAAU;AACjC,MAAM,eAAe,MAAU,KAAK,KAAA,IAAY;KAChD;;EAGJ,SAAS,IAAgB;GACvB,IAAM,IAAK,GAAW;AAYtB,GAXA,GAAyB,MAAU;AACjC,MAAM,MAAM,KAAK;KACf;KACA,OAAO;KACP,QAAQ;MACN,IAAI,GAAW;MACf,MAAM;MACN,SAAS,EAAE;MACZ;KACF,CAAC;KACF,EACF,EAAM,uBAAuB,EAAG;;yBAKhC,EAoEgB,EAAA,EAAA,EAAA,EApED,eAAY,yBAAuB,EAAA,EAAA;GACrC,kBAAc,QAWrB,CAVF,EAUE,EAAA,EAAA,EAAA;IATA,eAAY;IACX,eAAa,EAAM,WAAW;IAC9B,OAAK,EAAA,GAAK,EAAA,EAAY,CAAC,WAAW,EAAM,WAAW,MAAM,WAAM,GAAA,CAAA;IAC/D,cAAY;IACb,aAAU;IACV,aAAY;IACX,WAAW,EAAM,WAAW,MAAM,WAAM;IACxC,UAAU,EAAA,EAAa;IACvB,uBAAoB;;;;;;;GA8Cd,kBAAc,QASV,CARb,EAQa,EAAA,EAAA,EAAA;IAPX,eAAY;IACZ,MAAK;IACL,SAAA;IACC,UAAU,EAAM,WAAW,MAAM,WAAM;IACvC,SAAK,AAAA,EAAA,OAAA,GAAA,MAAO,EAAK,gBAAA,EAAA,CAAA,OAAA,CAAA;;qBAGpB,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAFC,mBAED,GAAA,CAAA,CAAA,CAAA;;;;MApDc,EAAM,aAAA;SAAa;eAyC3B,CAxCN,EAwCM,OAAA;IAvCJ,eAAY;IACX,OAAK,EAAA,CAAGA,EAAAA,OAAO,MAAI,GAAK,EAAA,EAAY,CAAC,WAAW,EAAM,WAAW,MAAM,WAAM,GAAA,CAAA,CAAA;;IAE9E,EAEO,QAAA;KAFD,eAAY;KAA6B,OAAK,EAAEA,EAAAA,OAAO,IAAG;OAAE,4EAElE,EAAA;IACA,EAagB,EAAA,EAAA,EAAA;KAZd,eAAY;KACX,OAAO,EAAM,WAAW;KACxB,iBAAe,MAAS,EAAK;KAC7B,cAAY,MAAS,EAAK,OAAO,EAAM;KACvC,cAAYA,EAAAA,OAAO;KACnB,OAAK,EAAEA,EAAAA,OAAO,MAAK;KACnB,kBAAc;KACd,aAAU,AAAA,EAAA,QAAG,MAAS,EAAM,uBAAuB,EAAK,GAAE;;KAEhD,cAAU,GACH,EADO,cAAI,CAAA,EAAA,EACxB,EAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;;;;;;;IAIjB,EAEiB,EAAA,EAAA,EAAA;KAFD,eAAY;KAA2B,MAAK;KAAO,SAAO;;sBAE1E,CAAA,GAAA,AAAA,EAAA,OAAA,CAAA,EAFyF,eAEzF,GAAA,CAAA,CAAA,CAAA;;;IAEA,EAaE,EAAA,EAAA,EAAA;KAZA,eAAY;KACX,OAAK,EAAA,CAAgBA,EAAAA,OAAO,cAAA,GAA6BA,EAAAA,OAAO,oBAAoB,EAAA,EAAO,CAAC,EAAM,WAAW,aAAY,EAAA,CAAA,CAAA;KAIzH,eAAa,EAAM,WAAW,gBAAY;KAC3C,OAAM;KACN,aAAY;KACZ,WAAA;KACA,QAAO;KACN,SAAK,AAAA,EAAA,OAAA,QAAN,IAAW,CAAA,OAAA,CAAA;KACV,uBAAoB"}
|