mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2026-09-09 18:03:21 +00:00
[ACS-12728] Allowed to hide drag indicator, keep node in original position until dopped
This commit is contained in:
@@ -108,6 +108,10 @@
|
|||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
text-underline-offset: 4px;
|
text-underline-offset: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#{ms.$cdk-drag-placeholder} {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&-current {
|
&-current {
|
||||||
|
|||||||
@@ -33,9 +33,9 @@ import { Node, PathElement } from '@alfresco/js-api';
|
|||||||
import { DocumentListComponent } from '../document-list/components/document-list.component';
|
import { DocumentListComponent } from '../document-list/components/document-list.component';
|
||||||
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
||||||
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||||
import { IconModule } from '@alfresco/adf-core';
|
import { DataRow, IconModule } from '@alfresco/adf-core';
|
||||||
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
||||||
import { CdkDrag, CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';
|
import { CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'adf-breadcrumb',
|
selector: 'adf-breadcrumb',
|
||||||
@@ -116,6 +116,9 @@ export class BreadcrumbComponent implements OnInit, OnChanges {
|
|||||||
@Output()
|
@Output()
|
||||||
breadcrumbPathElementsChange = new EventEmitter<string[]>();
|
breadcrumbPathElementsChange = new EventEmitter<string[]>();
|
||||||
|
|
||||||
|
@Output()
|
||||||
|
dropped = new EventEmitter<CdkDragDrop<PathElement, PathElement, DataRow>>();
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.transform = this.transform ? this.transform : null;
|
this.transform = this.transform ? this.transform : null;
|
||||||
|
|
||||||
@@ -228,9 +231,9 @@ export class BreadcrumbComponent implements OnInit, OnChanges {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onDrop(event: CdkDragDrop<CdkDrag>) {
|
onDrop(event: CdkDragDrop<PathElement, PathElement, DataRow>): void {
|
||||||
if (!event.isPointerOverContainer) {
|
if (event.isPointerOverContainer) {
|
||||||
return;
|
this.dropped.emit(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,8 @@
|
|||||||
[class.adf-datatable-gallery-thumbnails]="data.thumbnails"
|
[class.adf-datatable-gallery-thumbnails]="data.thumbnails"
|
||||||
[enableDragRows]="enableDragRows"
|
[enableDragRows]="enableDragRows"
|
||||||
[dropListConnectedTo]="dropListConnectedTo"
|
[dropListConnectedTo]="dropListConnectedTo"
|
||||||
[dragBoundary]="dragBoundary">
|
[dragBoundary]="dragBoundary"
|
||||||
|
[showDragIndicator]="showDragIndicator">
|
||||||
|
|
||||||
<div *ngIf="headerFilters">
|
<div *ngIf="headerFilters">
|
||||||
<adf-filter-header
|
<adf-filter-header
|
||||||
|
|||||||
@@ -396,6 +396,9 @@ export class DocumentListComponent extends DataTableSchema implements OnInit, On
|
|||||||
@Input()
|
@Input()
|
||||||
dragBoundary = '.adf-datatable-body';
|
dragBoundary = '.adf-datatable-body';
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
showDragIndicator = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Indicates if the data is provided externally.
|
* Indicates if the data is provided externally.
|
||||||
* If true the component won't fetch data itself
|
* If true the component won't fetch data itself
|
||||||
|
|||||||
@@ -41,5 +41,6 @@ $mat-select-arrow: '.mat-mdc-select-arrow';
|
|||||||
$mat-evolution-chip-set: '.mdc-evolution-chip-set';
|
$mat-evolution-chip-set: '.mdc-evolution-chip-set';
|
||||||
$cdk-overlay-pane: '.cdk-overlay-pane';
|
$cdk-overlay-pane: '.cdk-overlay-pane';
|
||||||
$cdk-drop-list-dragging: '.cdk-drop-list-dragging';
|
$cdk-drop-list-dragging: '.cdk-drop-list-dragging';
|
||||||
|
$cdk-drag-placeholder: '.cdk-drag-placeholder';
|
||||||
$mat-list-item-disabled: '.mdc-list-item--disabled';
|
$mat-list-item-disabled: '.mdc-list-item--disabled';
|
||||||
$mat-switch: '.mdc-switch';
|
$mat-switch: '.mdc-switch';
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
role="row"
|
role="row"
|
||||||
>
|
>
|
||||||
<!-- Drag -->
|
<!-- Drag -->
|
||||||
@if (enableDragRows) {
|
@if (enableDragRows && showDragIndicator) {
|
||||||
<div class="adf-datatable-cell-header adf-drag-column">
|
<div class="adf-datatable-cell-header adf-drag-column">
|
||||||
<span class="adf-sr-only">{{ 'ADF-DATATABLE.ACCESSIBILITY.DRAG' | translate }}</span>
|
<span class="adf-sr-only">{{ 'ADF-DATATABLE.ACCESSIBILITY.DRAG' | translate }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -241,6 +241,7 @@
|
|||||||
cdkDropList
|
cdkDropList
|
||||||
[cdkDropListConnectedTo]="dropListConnectedTo"
|
[cdkDropListConnectedTo]="dropListConnectedTo"
|
||||||
[cdkDropListDisabled]="!enableDragRows"
|
[cdkDropListDisabled]="!enableDragRows"
|
||||||
|
cdkDropListHasAnchor
|
||||||
role="rowgroup"
|
role="rowgroup"
|
||||||
>
|
>
|
||||||
@if (!noPermission) {
|
@if (!noPermission) {
|
||||||
@@ -252,6 +253,7 @@
|
|||||||
(cdkDragStarted)="onDragStart()"
|
(cdkDragStarted)="onDragStart()"
|
||||||
(cdkDragEnded)="onDragEnd()"
|
(cdkDragEnded)="onDragEnd()"
|
||||||
[cdkDragBoundary]="dragBoundary"
|
[cdkDragBoundary]="dragBoundary"
|
||||||
|
[cdkDragData]="row"
|
||||||
[row]="row"
|
[row]="row"
|
||||||
(select)="onEnterKeyPressed(row, $event)"
|
(select)="onEnterKeyPressed(row, $event)"
|
||||||
(keyup)="onRowKeyUp(row, $event)"
|
(keyup)="onRowKeyUp(row, $event)"
|
||||||
@@ -271,7 +273,7 @@
|
|||||||
"
|
"
|
||||||
>
|
>
|
||||||
<!-- Drag button -->
|
<!-- Drag button -->
|
||||||
@if (enableDragRows) {
|
@if (enableDragRows && showDragIndicator) {
|
||||||
<div role="gridcell" class="adf-datatable-cell adf-datatable__actions-cell adf-datatable-hover-only">
|
<div role="gridcell" class="adf-datatable-cell adf-datatable__actions-cell adf-datatable-hover-only">
|
||||||
<mat-icon adf-icon="drag_indicator" aria-hidden="true" />
|
<mat-icon adf-icon="drag_indicator" aria-hidden="true" />
|
||||||
</div>
|
</div>
|
||||||
@@ -663,7 +665,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<ng-container *cdkDragPlaceholder />
|
|
||||||
</adf-datatable-row>
|
</adf-datatable-row>
|
||||||
@if (isEmpty()) {
|
@if (isEmpty()) {
|
||||||
<div role="row" class="adf-datatable-row">
|
<div role="row" class="adf-datatable-row">
|
||||||
|
|||||||
@@ -299,6 +299,11 @@ $data-table-cell-min-width-file-size: $data-table-cell-min-width-1 !default;
|
|||||||
.adf-datatable-cell {
|
.adf-datatable-cell {
|
||||||
color: var(--mat-sys-on-surface);
|
color: var(--mat-sys-on-surface);
|
||||||
min-height: inherit;
|
min-height: inherit;
|
||||||
|
|
||||||
|
[role='link'],
|
||||||
|
a {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* stylelint-disable-next-line no-duplicate-selectors */
|
/* stylelint-disable-next-line no-duplicate-selectors */
|
||||||
@@ -672,6 +677,11 @@ $data-table-cell-min-width-file-size: $data-table-cell-min-width-1 !default;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#{ms.$cdk-drag-placeholder},
|
||||||
|
#{ms.$cdk-drag-anchor} {
|
||||||
|
opacity: 0.4;
|
||||||
|
}
|
||||||
|
|
||||||
/* [Accessibility] Material checkbox labels */
|
/* [Accessibility] Material checkbox labels */
|
||||||
.adf-checkbox-sr-only #{ms.$mat-checkbox-label} {
|
.adf-checkbox-sr-only #{ms.$mat-checkbox-label} {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -776,3 +786,7 @@ $data-table-cell-min-width-file-size: $data-table-cell-min-width-1 !default;
|
|||||||
background-color: color-mix(in srgb, var(--mat-sys-surface) 87%, transparent);
|
background-color: color-mix(in srgb, var(--mat-sys-surface) 87%, transparent);
|
||||||
box-shadow: var(--mat-sys-level2);
|
box-shadow: var(--mat-sys-level2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.adf-is-dragging * {
|
||||||
|
cursor: grabbing;
|
||||||
|
}
|
||||||
|
|||||||
@@ -236,6 +236,9 @@ export class DataTableComponent implements OnInit, AfterContentInit, OnChanges,
|
|||||||
@Input()
|
@Input()
|
||||||
dragBoundary = '.adf-datatable-body';
|
dragBoundary = '.adf-datatable-body';
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
showDragIndicator = true;
|
||||||
|
|
||||||
/** Emitted when the user clicks a row. */
|
/** Emitted when the user clicks a row. */
|
||||||
@Output()
|
@Output()
|
||||||
rowClick = new EventEmitter<DataRowEvent>();
|
rowClick = new EventEmitter<DataRowEvent>();
|
||||||
@@ -1103,10 +1106,12 @@ export class DataTableComponent implements OnInit, AfterContentInit, OnChanges,
|
|||||||
|
|
||||||
onDragStart(): void {
|
onDragStart(): void {
|
||||||
this.isDraggingRow = true;
|
this.isDraggingRow = true;
|
||||||
|
document.body.classList.add('adf-is-dragging');
|
||||||
}
|
}
|
||||||
|
|
||||||
onDragEnd(): void {
|
onDragEnd(): void {
|
||||||
this.isDraggingRow = false;
|
this.isDraggingRow = false;
|
||||||
|
document.body.classList.remove('adf-is-dragging');
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateColumnsWidths(): void {
|
private updateColumnsWidths(): void {
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ $mat-evolution-chip-graphic: '.mdc-evolution-chip__graphic';
|
|||||||
$mat-select-trigger: '.mat-mdc-select-trigger';
|
$mat-select-trigger: '.mat-mdc-select-trigger';
|
||||||
$mat-button-base: '.mat-mdc-button-base';
|
$mat-button-base: '.mat-mdc-button-base';
|
||||||
$cdk-drag-preview: '.cdk-drag-preview';
|
$cdk-drag-preview: '.cdk-drag-preview';
|
||||||
|
$cdk-drag-placeholder: '.cdk-drag-placeholder';
|
||||||
|
$cdk-drag-anchor: '.cdk-drag-anchor';
|
||||||
$mat-snackbar: '.mdc-snackbar';
|
$mat-snackbar: '.mdc-snackbar';
|
||||||
$mat-snack-bar-container: '.mat-mdc-snack-bar-container';
|
$mat-snack-bar-container: '.mat-mdc-snack-bar-container';
|
||||||
$mat-snackbar-label: '.mdc-snackbar__label';
|
$mat-snackbar-label: '.mdc-snackbar__label';
|
||||||
|
|||||||
Reference in New Issue
Block a user