@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
|
@@ -282,10 +282,11 @@ const stringMatchesError = computed(() => {
|
|
|
282
282
|
});
|
|
283
283
|
</script>
|
|
284
284
|
<template>
|
|
285
|
-
<div :class="$style.filterWrapper">
|
|
285
|
+
<div data-testid="pl-advanced-filter-filter" :class="$style.filterWrapper">
|
|
286
286
|
<!-- top element - column selector / column label - for all filter types-->
|
|
287
287
|
<div
|
|
288
288
|
v-if="enableDnd"
|
|
289
|
+
data-testid="pl-advanced-filter-column-chip"
|
|
289
290
|
:class="[$style.top, $style.columnChip, { [$style.error]: currentError }]"
|
|
290
291
|
>
|
|
291
292
|
<div :class="[$style.typeIcon, { [$style.error]: currentError }]">
|
|
@@ -299,7 +300,11 @@ const stringMatchesError = computed(() => {
|
|
|
299
300
|
"
|
|
300
301
|
/>
|
|
301
302
|
</div>
|
|
302
|
-
<div
|
|
303
|
+
<div
|
|
304
|
+
data-testid="pl-advanced-filter-column-title"
|
|
305
|
+
:class="$style.titleWrapper"
|
|
306
|
+
:title="currentOption?.label ?? ''"
|
|
307
|
+
>
|
|
303
308
|
<div :class="$style.title">
|
|
304
309
|
{{
|
|
305
310
|
inconsistentSourceSelected
|
|
@@ -308,12 +313,17 @@ const stringMatchesError = computed(() => {
|
|
|
308
313
|
}}
|
|
309
314
|
</div>
|
|
310
315
|
</div>
|
|
311
|
-
<div
|
|
316
|
+
<div
|
|
317
|
+
data-testid="pl-advanced-filter-remove"
|
|
318
|
+
:class="$style.closeIcon"
|
|
319
|
+
@click="onDelete(props.filter.column)"
|
|
320
|
+
>
|
|
312
321
|
<PlIcon16 name="close" />
|
|
313
322
|
</div>
|
|
314
323
|
</div>
|
|
315
324
|
<div v-else :class="$style.top">
|
|
316
325
|
<PlDropdown
|
|
326
|
+
data-testid="pl-advanced-filter-column"
|
|
317
327
|
:model-value="columnAsSourceAndFixedAxes.source"
|
|
318
328
|
:errorStatus="currentError"
|
|
319
329
|
:options="sourceOptions"
|
|
@@ -321,14 +331,23 @@ const stringMatchesError = computed(() => {
|
|
|
321
331
|
group-position="top-left"
|
|
322
332
|
@update:model-value="changeSourceId"
|
|
323
333
|
/>
|
|
324
|
-
<div
|
|
334
|
+
<div
|
|
335
|
+
data-testid="pl-advanced-filter-remove"
|
|
336
|
+
:class="$style.closeButton"
|
|
337
|
+
@click="onDelete(props.filter.column)"
|
|
338
|
+
>
|
|
325
339
|
<PlIcon16 name="close" />
|
|
326
340
|
</div>
|
|
327
341
|
</div>
|
|
328
342
|
|
|
329
|
-
<div
|
|
343
|
+
<div
|
|
344
|
+
v-if="currentOption?.axesToBeFixed?.length"
|
|
345
|
+
data-testid="pl-advanced-filter-fixed-axes"
|
|
346
|
+
:class="$style.fixedAxesBlock"
|
|
347
|
+
>
|
|
330
348
|
<template v-for="value in currentOption?.axesToBeFixed" :key="value.idx">
|
|
331
349
|
<PlAutocomplete
|
|
350
|
+
data-testid="pl-advanced-filter-fixed-axis"
|
|
332
351
|
:model-value="columnAsSourceAndFixedAxes.axisFiltersByIndex[value.idx]"
|
|
333
352
|
:label="value.label"
|
|
334
353
|
:options-search="
|
|
@@ -351,6 +370,7 @@ const stringMatchesError = computed(() => {
|
|
|
351
370
|
"
|
|
352
371
|
>
|
|
353
372
|
<PlDropdown
|
|
373
|
+
data-testid="pl-advanced-filter-type"
|
|
354
374
|
:model-value="props.filter.type"
|
|
355
375
|
:options="filterTypesOptions"
|
|
356
376
|
:group-position="
|
|
@@ -364,14 +384,16 @@ const stringMatchesError = computed(() => {
|
|
|
364
384
|
<template v-if="props.filter.type === 'patternFuzzyContainSubsequence'">
|
|
365
385
|
<div :class="$style.middle">
|
|
366
386
|
<PlTextField
|
|
387
|
+
data-testid="pl-advanced-filter-value"
|
|
367
388
|
:model-value="props.filter.value"
|
|
368
389
|
placeholder="Substring"
|
|
369
390
|
group-position="middle"
|
|
370
391
|
@update:model-value="(v) => updateFilterProp('value', v)"
|
|
371
392
|
/>
|
|
372
393
|
</div>
|
|
373
|
-
<div :class="$style.innerSection">
|
|
394
|
+
<div data-testid="pl-advanced-filter-fuzzy-settings" :class="$style.innerSection">
|
|
374
395
|
<Slider
|
|
396
|
+
data-testid="pl-advanced-filter-max-edits"
|
|
375
397
|
:model-value="props.filter.maxEdits"
|
|
376
398
|
:max="5"
|
|
377
399
|
breakpoints
|
|
@@ -379,6 +401,7 @@ const stringMatchesError = computed(() => {
|
|
|
379
401
|
@update:model-value="(v) => updateFilterProp('maxEdits', v)"
|
|
380
402
|
/>
|
|
381
403
|
<PlToggleSwitch
|
|
404
|
+
data-testid="pl-advanced-filter-substitutions-only"
|
|
382
405
|
:model-value="props.filter.substitutionsOnly"
|
|
383
406
|
label="Substitutions only"
|
|
384
407
|
@update:model-value="(v) => updateFilterProp('substitutionsOnly', v)"
|
|
@@ -390,6 +413,7 @@ const stringMatchesError = computed(() => {
|
|
|
390
413
|
<div :class="$style.bottom">
|
|
391
414
|
<PlAutocomplete
|
|
392
415
|
v-if="props.filter.type === 'patternEquals' || props.filter.type === 'patternNotEquals'"
|
|
416
|
+
data-testid="pl-advanced-filter-value"
|
|
393
417
|
:model-value="props.filter.value"
|
|
394
418
|
:options-search="
|
|
395
419
|
(str, type) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, type, str)
|
|
@@ -400,6 +424,7 @@ const stringMatchesError = computed(() => {
|
|
|
400
424
|
/>
|
|
401
425
|
<PlAutocompleteMulti
|
|
402
426
|
v-if="props.filter.type === 'inSet' || props.filter.type === 'notInSet'"
|
|
427
|
+
data-testid="pl-advanced-filter-value"
|
|
403
428
|
:model-value="props.filter.value"
|
|
404
429
|
:options-search="
|
|
405
430
|
(str, type) => getMultiSuggestOptionsFn(columnAsSourceAndFixedAxes.source, type, str)
|
|
@@ -410,12 +435,14 @@ const stringMatchesError = computed(() => {
|
|
|
410
435
|
/>
|
|
411
436
|
<PlNumberField
|
|
412
437
|
v-if="isNumericFilter(props.filter)"
|
|
438
|
+
data-testid="pl-advanced-filter-value"
|
|
413
439
|
:model-value="props.filter.x"
|
|
414
440
|
group-position="bottom"
|
|
415
441
|
@update:model-value="(v) => updateFilterProp('x', v)"
|
|
416
442
|
/>
|
|
417
443
|
<PlNumberField
|
|
418
444
|
v-if="isPositionFilter(props.filter)"
|
|
445
|
+
data-testid="pl-advanced-filter-value"
|
|
419
446
|
:model-value="props.filter.n"
|
|
420
447
|
group-position="bottom"
|
|
421
448
|
@update:model-value="(v) => updateFilterProp('n', v)"
|
|
@@ -425,6 +452,7 @@ const stringMatchesError = computed(() => {
|
|
|
425
452
|
props.filter.type === 'patternContainSubsequence' ||
|
|
426
453
|
props.filter.type === 'patternNotContainSubsequence'
|
|
427
454
|
"
|
|
455
|
+
data-testid="pl-advanced-filter-value"
|
|
428
456
|
:model-value="props.filter.value"
|
|
429
457
|
placeholder="Substring"
|
|
430
458
|
group-position="bottom"
|
|
@@ -432,6 +460,7 @@ const stringMatchesError = computed(() => {
|
|
|
432
460
|
/>
|
|
433
461
|
<PlTextField
|
|
434
462
|
v-if="props.filter.type === 'patternMatchesRegularExpression'"
|
|
463
|
+
data-testid="pl-advanced-filter-value"
|
|
435
464
|
:model-value="props.filter.value"
|
|
436
465
|
:error="stringMatchesError ? 'Regular expression is not valid' : undefined"
|
|
437
466
|
placeholder="Regular expression"
|
|
@@ -440,6 +469,7 @@ const stringMatchesError = computed(() => {
|
|
|
440
469
|
/>
|
|
441
470
|
<PlDropdown
|
|
442
471
|
v-if="props.filter.type === 'patternFuzzyContainSubsequence'"
|
|
472
|
+
data-testid="pl-advanced-filter-wildcard"
|
|
443
473
|
:model-value="props.filter.wildcard"
|
|
444
474
|
clearable
|
|
445
475
|
placeholder="Wildcard value"
|
|
@@ -10,10 +10,11 @@ const props = defineProps<{
|
|
|
10
10
|
const OPTIONS: Operand[] = ["and", "or"];
|
|
11
11
|
</script>
|
|
12
12
|
<template>
|
|
13
|
-
<div v-bind="$attrs" :class="$style.block">
|
|
13
|
+
<div data-testid="pl-advanced-filter-operands" v-bind="$attrs" :class="$style.block">
|
|
14
14
|
<div
|
|
15
15
|
v-for="op in OPTIONS"
|
|
16
16
|
:key="op"
|
|
17
|
+
data-testid="pl-advanced-filter-operand"
|
|
17
18
|
:class="[$style.operand, { [$style.active]: op === props.active && !props.disabled }]"
|
|
18
19
|
@click="!props.disabled && props.onSelect(op)"
|
|
19
20
|
>
|
|
@@ -228,9 +228,10 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
228
228
|
}
|
|
229
229
|
</script>
|
|
230
230
|
<template>
|
|
231
|
-
<div>
|
|
231
|
+
<div data-testid="pl-advanced-filter">
|
|
232
232
|
<PlElementList
|
|
233
233
|
v-model:items="rootFilters"
|
|
234
|
+
data-testid="pl-advanced-filter-groups"
|
|
234
235
|
:get-item-key="(filter) => filter.id"
|
|
235
236
|
:item-class="$style.filterGroup"
|
|
236
237
|
:item-class-content="$style.filterGroupContent"
|
|
@@ -252,6 +253,7 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
252
253
|
</template>
|
|
253
254
|
<template #item-content="{ item, index }">
|
|
254
255
|
<div
|
|
256
|
+
data-testid="pl-advanced-filter-group"
|
|
255
257
|
:class="[$style.groupContent, { [$style.suppressedLabel]: item.isSuppressed }]"
|
|
256
258
|
dropzone="true"
|
|
257
259
|
@drop="(event) => handleDropToExistingGroup(index, event)"
|
|
@@ -259,6 +261,7 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
259
261
|
>
|
|
260
262
|
<PlCheckbox
|
|
261
263
|
:model-value="item.type === 'not'"
|
|
264
|
+
data-testid="pl-advanced-filter-filter-out"
|
|
262
265
|
:class="$style.notCheckbox"
|
|
263
266
|
@update:model-value="inverseRootNode(index)"
|
|
264
267
|
>
|
|
@@ -278,11 +281,16 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
278
281
|
@change-operand="(v) => changeGroupOperand(index, v)"
|
|
279
282
|
/>
|
|
280
283
|
</template>
|
|
281
|
-
<div
|
|
284
|
+
<div
|
|
285
|
+
v-if="props.enableDnd"
|
|
286
|
+
data-testid="pl-advanced-filter-dropzone"
|
|
287
|
+
:class="$style.dropzone"
|
|
288
|
+
>
|
|
282
289
|
<div>Drop dimensions here</div>
|
|
283
290
|
</div>
|
|
284
291
|
<PlBtnSecondary
|
|
285
292
|
v-else-if="!props.isCompletedGroup(item, index)"
|
|
293
|
+
data-testid="pl-advanced-filter-add-filter"
|
|
286
294
|
icon="add"
|
|
287
295
|
@click="addColumnToGroup(index, firstColumnId)"
|
|
288
296
|
>
|
|
@@ -293,6 +301,7 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
293
301
|
<template #item-after="{ index }">
|
|
294
302
|
<OperandButton
|
|
295
303
|
v-if="props.enableAddGroupButton || index < getRootGroups().length - 1"
|
|
304
|
+
data-testid="pl-advanced-filter-group-operands"
|
|
296
305
|
:class="$style.buttonWrapper"
|
|
297
306
|
:active="props.filters.type"
|
|
298
307
|
:disabled="index === getRootGroups().length - 1"
|
|
@@ -304,6 +313,7 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
304
313
|
<!-- Last group - always empty, just for adding new groups -->
|
|
305
314
|
<PlElementList
|
|
306
315
|
v-if="props.enableAddGroupButton"
|
|
316
|
+
data-testid="pl-advanced-filter-new-group"
|
|
307
317
|
:items="emptyGroup"
|
|
308
318
|
:get-item-key="(group) => group.id"
|
|
309
319
|
:item-class="$style.filterGroup"
|
|
@@ -324,11 +334,17 @@ function validateFilter<T extends CommonFilter>(item: T): EditableFilter {
|
|
|
324
334
|
>
|
|
325
335
|
</template>
|
|
326
336
|
<template #item-content>
|
|
327
|
-
<div v-if="enableDnd" :class="$style.dropzone">
|
|
337
|
+
<div v-if="enableDnd" data-testid="pl-advanced-filter-dropzone" :class="$style.dropzone">
|
|
328
338
|
<div>Drop dimensions here</div>
|
|
329
339
|
</div>
|
|
330
340
|
<slot v-else name="add-group-buttons">
|
|
331
|
-
<PlBtnSecondary
|
|
341
|
+
<PlBtnSecondary
|
|
342
|
+
data-testid="pl-advanced-filter-add-group"
|
|
343
|
+
icon="add"
|
|
344
|
+
@click="addGroup(firstColumnId)"
|
|
345
|
+
>
|
|
346
|
+
Add filter
|
|
347
|
+
</PlBtnSecondary>
|
|
332
348
|
</slot>
|
|
333
349
|
</template>
|
|
334
350
|
</PlElementList>
|
|
@@ -47,8 +47,9 @@ const currentProgress = computed(() => {
|
|
|
47
47
|
</script>
|
|
48
48
|
|
|
49
49
|
<template>
|
|
50
|
-
<div style="height: 100%">
|
|
50
|
+
<div data-testid="pl-ag-cell-file" style="height: 100%">
|
|
51
51
|
<PlFileInput
|
|
52
|
+
data-testid="pl-ag-cell-file-input"
|
|
52
53
|
show-filename-only
|
|
53
54
|
clearable
|
|
54
55
|
cell-style
|
|
@@ -7,8 +7,8 @@ defineProps<{ params?: ICellRendererParams & { type: PlStatusTagType } }>();
|
|
|
7
7
|
</script>
|
|
8
8
|
|
|
9
9
|
<template>
|
|
10
|
-
<div class="pl-ag-cell-status-tag d-flex align-center">
|
|
11
|
-
<PlStatusTag :type="params?.type" />
|
|
10
|
+
<div data-testid="pl-ag-cell-status-tag" class="pl-ag-cell-status-tag d-flex align-center">
|
|
11
|
+
<PlStatusTag data-testid="pl-ag-cell-status-tag-tag" :type="params?.type" />
|
|
12
12
|
</div>
|
|
13
13
|
</template>
|
|
14
14
|
|
|
@@ -28,9 +28,19 @@ const settings = computed<PlChartHistogramSettings | undefined>(() => {
|
|
|
28
28
|
</script>
|
|
29
29
|
|
|
30
30
|
<template>
|
|
31
|
-
<div ref="root" class="pl-ag-chart-histogram-cell">
|
|
32
|
-
<PlChartHistogram
|
|
33
|
-
|
|
31
|
+
<div ref="root" data-testid="pl-ag-chart-histogram-cell" class="pl-ag-chart-histogram-cell">
|
|
32
|
+
<PlChartHistogram
|
|
33
|
+
v-if="settings"
|
|
34
|
+
data-testid="pl-ag-chart-histogram-cell-chart"
|
|
35
|
+
:settings="settings"
|
|
36
|
+
/>
|
|
37
|
+
<div
|
|
38
|
+
v-else
|
|
39
|
+
data-testid="pl-ag-chart-histogram-cell-not-ready"
|
|
40
|
+
class="pl-ag-chart-histogram-cell__not-ready"
|
|
41
|
+
>
|
|
42
|
+
Not ready
|
|
43
|
+
</div>
|
|
34
44
|
</div>
|
|
35
45
|
</template>
|
|
36
46
|
|
|
@@ -12,9 +12,19 @@ const settings = computed(() => props.params.value || undefined);
|
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
14
|
<template>
|
|
15
|
-
<div class="pl-ag-chart-stacked-bar-cell">
|
|
16
|
-
<PlChartStackedBarCompact
|
|
17
|
-
|
|
15
|
+
<div data-testid="pl-ag-chart-stacked-bar-cell" class="pl-ag-chart-stacked-bar-cell">
|
|
16
|
+
<PlChartStackedBarCompact
|
|
17
|
+
v-if="settings"
|
|
18
|
+
data-testid="pl-ag-chart-stacked-bar-cell-chart"
|
|
19
|
+
:settings="settings"
|
|
20
|
+
/>
|
|
21
|
+
<div
|
|
22
|
+
v-else
|
|
23
|
+
data-testid="pl-ag-chart-stacked-bar-cell-not-ready"
|
|
24
|
+
class="pl-ag-chart-stacked-bar-cell__not-ready"
|
|
25
|
+
>
|
|
26
|
+
Not ready
|
|
27
|
+
</div>
|
|
18
28
|
</div>
|
|
19
29
|
</template>
|
|
20
30
|
|
|
@@ -63,24 +63,42 @@ function showMenu() {
|
|
|
63
63
|
</script>
|
|
64
64
|
|
|
65
65
|
<template>
|
|
66
|
-
<div
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
<div
|
|
67
|
+
data-testid="pl-ag-column-header"
|
|
68
|
+
class="pl-ag-column-header d-flex align-center gap-6"
|
|
69
|
+
@click="onSortRequested"
|
|
70
|
+
>
|
|
71
|
+
<div
|
|
72
|
+
data-testid="pl-ag-column-header-title"
|
|
73
|
+
class="pl-ag-column-header__title d-flex align-center gap-6 flex-grow-1"
|
|
74
|
+
>
|
|
75
|
+
<PlMaskIcon16
|
|
76
|
+
data-testid="pl-ag-column-header-type-icon"
|
|
77
|
+
:name="icon"
|
|
78
|
+
class="pl-ag-column-header__type-icon"
|
|
79
|
+
/>
|
|
69
80
|
<PlTooltip>
|
|
70
81
|
<template v-if="params.tooltip" #tooltip>{{ params.tooltip }}</template>
|
|
71
|
-
<span>{{ params.displayName }}</span>
|
|
82
|
+
<span data-testid="pl-ag-column-header-name">{{ params.displayName }}</span>
|
|
72
83
|
</PlTooltip>
|
|
73
|
-
<PlTooltip
|
|
84
|
+
<PlTooltip
|
|
85
|
+
v-if="params.info"
|
|
86
|
+
data-testid="pl-ag-column-header-info"
|
|
87
|
+
max-width="500px"
|
|
88
|
+
position="bottom"
|
|
89
|
+
:close-delay="10000000000"
|
|
90
|
+
>
|
|
74
91
|
<template #tooltip>
|
|
75
92
|
<span style="white-space: pre-wrap">{{ params.info }}</span>
|
|
76
93
|
</template>
|
|
77
94
|
<PlMaskIcon16 name="info" />
|
|
78
95
|
</PlTooltip>
|
|
79
|
-
<PlMaskIcon16 v-if="sortIcon" :name="sortIcon" />
|
|
96
|
+
<PlMaskIcon16 v-if="sortIcon" data-testid="pl-ag-column-header-sort" :name="sortIcon" />
|
|
80
97
|
</div>
|
|
81
98
|
<div
|
|
82
99
|
v-if="params.enableMenu"
|
|
83
100
|
ref="menuActivatorBtn"
|
|
101
|
+
data-testid="pl-ag-column-header-menu"
|
|
84
102
|
class="pl-ag-column-header__menu-icon"
|
|
85
103
|
@click.stop="showMenu"
|
|
86
104
|
>
|
|
@@ -34,7 +34,12 @@ const teleportTarget = usePlBlockPageTitleTeleportTarget("PlAgCsvExporter");
|
|
|
34
34
|
|
|
35
35
|
<template>
|
|
36
36
|
<Teleport v-if="teleportTarget && csvExportAvailable" :to="teleportTarget">
|
|
37
|
-
<PlBtnGhost
|
|
37
|
+
<PlBtnGhost
|
|
38
|
+
data-testid="pl-ag-csv-exporter"
|
|
39
|
+
:loading="exporting"
|
|
40
|
+
icon="export"
|
|
41
|
+
@click.stop="initiateExport"
|
|
42
|
+
>
|
|
38
43
|
Export
|
|
39
44
|
</PlBtnGhost>
|
|
40
45
|
</Teleport>
|
|
@@ -79,12 +79,17 @@ function onSheetChanged(i: number, newValue: string | number): void {
|
|
|
79
79
|
</script>
|
|
80
80
|
|
|
81
81
|
<template>
|
|
82
|
-
<div
|
|
82
|
+
<div
|
|
83
|
+
v-if="$slots['before'] || sheets.length > 0 || $slots['after']"
|
|
84
|
+
data-testid="pl-ag-data-table-sheets"
|
|
85
|
+
:class="$style.container"
|
|
86
|
+
>
|
|
83
87
|
<slot name="before" />
|
|
84
88
|
<template v-for="(sheet, i) in sheets" :key="i">
|
|
85
89
|
<!-- For some reason state[i] is undefined when the sheet initially loads, so v-if to suppress the error -->
|
|
86
90
|
<PlDropdownLine
|
|
87
91
|
v-if="state[i]"
|
|
92
|
+
data-testid="pl-ag-data-table-sheets-dropdown"
|
|
88
93
|
:model-value="state[i].value"
|
|
89
94
|
:options="sheet.options"
|
|
90
95
|
:prefix="sheet.prefix"
|
|
@@ -610,7 +610,7 @@ watchEffect(() => {
|
|
|
610
610
|
</script>
|
|
611
611
|
|
|
612
612
|
<template>
|
|
613
|
-
<div :class="$style.container">
|
|
613
|
+
<div data-testid="pl-ag-data-table" :class="$style.container">
|
|
614
614
|
<PlAgGridColumnManager v-if="gridApi && !disableColumnsPanel" :api="gridApi" />
|
|
615
615
|
<PlTableFiltersV2
|
|
616
616
|
v-if="!disableFiltersPanel"
|
|
@@ -640,6 +640,7 @@ watchEffect(() => {
|
|
|
640
640
|
<PlTableFastSearch v-model="searchString" />
|
|
641
641
|
<AgGridVue
|
|
642
642
|
:key="reloadKey"
|
|
643
|
+
data-testid="pl-ag-data-table-grid"
|
|
643
644
|
:theme="AgGridTheme"
|
|
644
645
|
:class="$style.grid"
|
|
645
646
|
:grid-options="gridOptions"
|
|
@@ -29,13 +29,20 @@ function normalizePlaceholderText(
|
|
|
29
29
|
</script>
|
|
30
30
|
|
|
31
31
|
<template>
|
|
32
|
-
<div :class="style.container">
|
|
33
|
-
<div
|
|
32
|
+
<div data-testid="pl-ag-data-table-loading" :class="style.container">
|
|
33
|
+
<div
|
|
34
|
+
v-if="params.variant === 'not-ready'"
|
|
35
|
+
data-testid="pl-ag-data-table-not-ready"
|
|
36
|
+
:class="style.notReadyWrapper"
|
|
37
|
+
>
|
|
34
38
|
<div :class="style.iconCatInBag" />
|
|
35
|
-
<h3 :class="style.text">
|
|
39
|
+
<h3 data-testid="pl-ag-data-table-not-ready-text" :class="style.text">
|
|
40
|
+
{{ params.notReadyText || "Data is not computed" }}
|
|
41
|
+
</h3>
|
|
36
42
|
</div>
|
|
37
43
|
<PlPlaceholder
|
|
38
44
|
v-else
|
|
45
|
+
data-testid="pl-ag-data-table-loading-placeholder"
|
|
39
46
|
v-bind="
|
|
40
47
|
normalizePlaceholderText(
|
|
41
48
|
{
|
|
@@ -16,9 +16,11 @@ defineExpose({
|
|
|
16
16
|
</script>
|
|
17
17
|
|
|
18
18
|
<template>
|
|
19
|
-
<div class="grid-overlay-container">
|
|
19
|
+
<div data-testid="pl-ag-data-table-no-rows" class="grid-overlay-container">
|
|
20
20
|
<div class="grid-icon-sad-cat" />
|
|
21
|
-
<span class="text-subtitle-m">{{
|
|
21
|
+
<span data-testid="pl-ag-data-table-no-rows-text" class="text-subtitle-m">{{
|
|
22
|
+
params.text || "Empty"
|
|
23
|
+
}}</span>
|
|
22
24
|
</div>
|
|
23
25
|
</template>
|
|
24
26
|
|
|
@@ -69,14 +69,26 @@ const toggleAllFiltered = () => {
|
|
|
69
69
|
|
|
70
70
|
<template>
|
|
71
71
|
<Teleport v-if="teleportTarget" :to="teleportTarget">
|
|
72
|
-
<PlBtnGhost
|
|
72
|
+
<PlBtnGhost
|
|
73
|
+
data-testid="pl-ag-grid-column-manager"
|
|
74
|
+
icon="columns"
|
|
75
|
+
@click.stop="slideModal = !slideModal"
|
|
76
|
+
>
|
|
77
|
+
Columns
|
|
78
|
+
</PlBtnGhost>
|
|
73
79
|
</Teleport>
|
|
74
80
|
|
|
75
|
-
<PlSlideModal
|
|
81
|
+
<PlSlideModal
|
|
82
|
+
v-model="slideModal"
|
|
83
|
+
data-testid="pl-ag-grid-column-manager-panel"
|
|
84
|
+
:width="width"
|
|
85
|
+
close-on-outside-click
|
|
86
|
+
>
|
|
76
87
|
<template #title>Manage Columns</template>
|
|
77
|
-
<div :class="$style.searchRow">
|
|
78
|
-
<PlSearchField v-model="query" clearable />
|
|
88
|
+
<div data-testid="pl-ag-grid-column-manager-search-row" :class="$style.searchRow">
|
|
89
|
+
<PlSearchField v-model="query" data-testid="pl-ag-grid-column-manager-search" clearable />
|
|
79
90
|
<PlBtnSecondary
|
|
91
|
+
data-testid="pl-ag-grid-column-manager-toggle-all"
|
|
80
92
|
:class="$style.toggleAllBtn"
|
|
81
93
|
:disabled="toggleableFilteredItems.length === 0"
|
|
82
94
|
@click.stop="toggleAllFiltered"
|
|
@@ -86,6 +98,7 @@ const toggleAllFiltered = () => {
|
|
|
86
98
|
</PlBtnSecondary>
|
|
87
99
|
</div>
|
|
88
100
|
<PlElementList
|
|
101
|
+
data-testid="pl-ag-grid-column-manager-list"
|
|
89
102
|
:items="filteredItems"
|
|
90
103
|
:get-item-key="(item) => item.id"
|
|
91
104
|
:is-draggable="(item) => !item.column.getColDef().lockPosition"
|
|
@@ -113,7 +126,7 @@ const toggleAllFiltered = () => {
|
|
|
113
126
|
disable-removing
|
|
114
127
|
>
|
|
115
128
|
<template #item-title="{ item }">
|
|
116
|
-
<span>
|
|
129
|
+
<span data-testid="pl-ag-grid-column-manager-item">
|
|
117
130
|
<span
|
|
118
131
|
v-for="(segment, i) of segments.get(item.label)"
|
|
119
132
|
:key="i"
|
|
@@ -34,6 +34,7 @@ onBeforeUnmount(() => {
|
|
|
34
34
|
|
|
35
35
|
<template>
|
|
36
36
|
<div
|
|
37
|
+
data-testid="pl-ag-row-num-checkbox"
|
|
37
38
|
:class="[
|
|
38
39
|
$styles.container,
|
|
39
40
|
{ [$styles['allowed-selection']]: allowedSelection },
|
|
@@ -42,10 +43,13 @@ onBeforeUnmount(() => {
|
|
|
42
43
|
'align-center',
|
|
43
44
|
]"
|
|
44
45
|
>
|
|
45
|
-
<div v-if="!isChecked" :class="[$styles.text]">
|
|
46
|
+
<div v-if="!isChecked" data-testid="pl-ag-row-num-checkbox-value" :class="[$styles.text]">
|
|
47
|
+
{{ params.value }}
|
|
48
|
+
</div>
|
|
46
49
|
<PlCheckbox
|
|
47
50
|
v-if="forceShowCheckbox"
|
|
48
51
|
v-model="isChecked"
|
|
52
|
+
data-testid="pl-ag-row-num-checkbox-checkbox"
|
|
49
53
|
:class="[$styles.checkbox, isChecked && $styles.checked]"
|
|
50
54
|
@update:modelValue="setSelection"
|
|
51
55
|
/>
|
|
@@ -58,6 +58,7 @@ onBeforeUnmount(() => {
|
|
|
58
58
|
|
|
59
59
|
<template>
|
|
60
60
|
<div
|
|
61
|
+
data-testid="pl-ag-row-num-header"
|
|
61
62
|
style="
|
|
62
63
|
position: absolute;
|
|
63
64
|
inset: 0;
|
|
@@ -68,11 +69,12 @@ onBeforeUnmount(() => {
|
|
|
68
69
|
>
|
|
69
70
|
<PlCheckbox
|
|
70
71
|
v-if="isSelectable"
|
|
72
|
+
data-testid="pl-ag-row-num-header-checkbox"
|
|
71
73
|
:model-value="someRowsSelected"
|
|
72
74
|
:indeterminate="someRowsSelected && !allRowsSelected"
|
|
73
75
|
@update:model-value="toggleSelectAll"
|
|
74
76
|
/>
|
|
75
|
-
<span v-else>
|
|
77
|
+
<span v-else data-testid="pl-ag-row-num-header-label">
|
|
76
78
|
{{ params.displayName }}
|
|
77
79
|
</span>
|
|
78
80
|
</div>
|
|
@@ -54,11 +54,12 @@ function triggerRowDoubleClick() {
|
|
|
54
54
|
}
|
|
55
55
|
</script>
|
|
56
56
|
<template>
|
|
57
|
-
<div class="pl-ag-grid-open-cell d-flex">
|
|
58
|
-
<div class="pl-ag-grid-open-cell__value">
|
|
57
|
+
<div data-testid="pl-ag-text-and-button-cell" class="pl-ag-grid-open-cell d-flex">
|
|
58
|
+
<div data-testid="pl-ag-text-and-button-cell-value" class="pl-ag-grid-open-cell__value">
|
|
59
59
|
{{ params.value }}
|
|
60
60
|
</div>
|
|
61
61
|
<div
|
|
62
|
+
data-testid="pl-ag-text-and-button-cell-button"
|
|
62
63
|
class="pl-ag-grid-open-cell__activator text-caps11 align-center"
|
|
63
64
|
@click.stop="triggerRowDoubleClick"
|
|
64
65
|
>
|
|
@@ -66,9 +66,10 @@ function handleAddStep() {
|
|
|
66
66
|
</script>
|
|
67
67
|
|
|
68
68
|
<template>
|
|
69
|
-
<PlSidebarItem>
|
|
69
|
+
<PlSidebarItem data-testid="pl-annotations-schema">
|
|
70
70
|
<template #header-content>
|
|
71
71
|
<PlEditableTitle
|
|
72
|
+
data-testid="pl-annotations-schema-title"
|
|
72
73
|
:model-value="props.annotation.title"
|
|
73
74
|
:class="{ [$commonStyle.flashing]: props.annotation.title.length === 0 }"
|
|
74
75
|
:max-length="40"
|
|
@@ -80,11 +81,15 @@ function handleAddStep() {
|
|
|
80
81
|
/>
|
|
81
82
|
</template>
|
|
82
83
|
<template v-if="props.annotation" #body-content>
|
|
83
|
-
<div
|
|
84
|
-
|
|
84
|
+
<div
|
|
85
|
+
data-testid="pl-annotations-schema-body"
|
|
86
|
+
:class="[$style.root, { [$commonStyle.disabled]: props.annotation.title.length === 0 }]"
|
|
87
|
+
>
|
|
88
|
+
<span data-testid="pl-annotations-schema-tip" :class="$style.tip">
|
|
85
89
|
Above annotations override the ones below. Rearrange them by dragging.
|
|
86
90
|
</span>
|
|
87
91
|
<PlElementList
|
|
92
|
+
data-testid="pl-annotations-steps"
|
|
88
93
|
:items="props.annotation.steps"
|
|
89
94
|
:get-item-key="(item) => item.id"
|
|
90
95
|
:is-active="(item) => item.id === props.selectedStepId"
|
|
@@ -98,9 +103,12 @@ function handleAddStep() {
|
|
|
98
103
|
</template>
|
|
99
104
|
</PlElementList>
|
|
100
105
|
|
|
101
|
-
<PlBtnSecondary icon="add" @click="handleAddStep">
|
|
106
|
+
<PlBtnSecondary data-testid="pl-annotations-add-label" icon="add" @click="handleAddStep">
|
|
107
|
+
Add label
|
|
108
|
+
</PlBtnSecondary>
|
|
102
109
|
|
|
103
110
|
<PlTextField
|
|
111
|
+
data-testid="pl-annotations-default-value"
|
|
104
112
|
:class="[
|
|
105
113
|
$style.defaultValue,
|
|
106
114
|
{ [$style.emptyDefaultValue]: isEmpty(props.annotation.defaultValue) },
|
|
@@ -117,6 +125,7 @@ function handleAddStep() {
|
|
|
117
125
|
</template>
|
|
118
126
|
<template #footer-content>
|
|
119
127
|
<PlBtnGhost
|
|
128
|
+
data-testid="pl-annotations-delete-schema"
|
|
120
129
|
icon="delete-bin"
|
|
121
130
|
reverse
|
|
122
131
|
:disabled="props.annotation.steps.length === 0"
|