ngx-edu-sharing-ui 10.0.20 → 10.0.22
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/assets/scss/material-theme.scss +3 -3
- package/assets/scss/mixins.scss +1 -1
- package/assets/scss/variables-root.scss +2 -0
- package/assets/scss/variables-scss.scss +3 -4
- package/assets/scss/variables.scss +1 -1
- package/fesm2022/ngx-edu-sharing-ui.mjs +376 -319
- package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/list-items/list-widget.d.ts +1 -1
- package/lib/mds-viewer/mds-editor-instance-service.abstract.d.ts +14 -0
- package/lib/mds-viewer/widget/mds-widget.component.d.ts +6 -4
- package/package.json +8 -9
- package/esm2022/lib/actionbar/actionbar.component.mjs +0 -206
- package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +0 -170
- package/esm2022/lib/directives/border-box-observer.directive.mjs +0 -71
- package/esm2022/lib/directives/check-text-overflow.directive.mjs +0 -71
- package/esm2022/lib/directives/drag-nodes/drag-nodes.mjs +0 -14
- package/esm2022/lib/directives/drag-nodes/nodes-drag-source.directive.mjs +0 -79
- package/esm2022/lib/directives/drag-nodes/nodes-drag.directive.mjs +0 -49
- package/esm2022/lib/directives/drag-nodes/nodes-drop-target.directive.mjs +0 -105
- package/esm2022/lib/directives/focus-state.directive.mjs +0 -44
- package/esm2022/lib/directives/icon.directive.mjs +0 -184
- package/esm2022/lib/directives/infinite-scroll.directive.mjs +0 -85
- package/esm2022/lib/dropdown/dropdown.component.mjs +0 -83
- package/esm2022/lib/edu-sharing-ui-configuration.mjs +0 -48
- package/esm2022/lib/edu-sharing-ui.module.mjs +0 -82
- package/esm2022/lib/index.mjs +0 -96
- package/esm2022/lib/list-items/available-widgets.mjs +0 -27
- package/esm2022/lib/list-items/format-duration.pipe.mjs +0 -20
- package/esm2022/lib/list-items/list-base/list-base.component.mjs +0 -46
- package/esm2022/lib/list-items/list-collection-info/list-collection-info.component.mjs +0 -29
- package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +0 -56
- package/esm2022/lib/list-items/list-items.module.mjs +0 -50
- package/esm2022/lib/list-items/list-node-license/list-node-license.component.mjs +0 -41
- package/esm2022/lib/list-items/list-node-replication-source/list-node-replication-source.component.mjs +0 -47
- package/esm2022/lib/list-items/list-node-workflow/list-node-workflow.component.mjs +0 -24
- package/esm2022/lib/list-items/list-text/list-text.component.mjs +0 -106
- package/esm2022/lib/list-items/list-widget.mjs +0 -49
- package/esm2022/lib/list-items/node-row/node-row.component.mjs +0 -24
- package/esm2022/lib/list-items/node-source.pipe.mjs +0 -49
- package/esm2022/lib/mds/mds-helper.service.mjs +0 -167
- package/esm2022/lib/mds/mds.module.mjs +0 -16
- package/esm2022/lib/mds-viewer/mds-viewer.component.mjs +0 -170
- package/esm2022/lib/mds-viewer/mds-viewer.service.mjs +0 -18
- package/esm2022/lib/mds-viewer/replace-element-with-div.mjs +0 -47
- package/esm2022/lib/mds-viewer/view-instance.service.mjs +0 -27
- package/esm2022/lib/mds-viewer/widget/mds-widget.component.mjs +0 -379
- package/esm2022/lib/node-entries/combined-data-source.mjs +0 -41
- package/esm2022/lib/node-entries/custom-templates-data-source.mjs +0 -7
- package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +0 -21
- package/esm2022/lib/node-entries/entries-model.mjs +0 -24
- package/esm2022/lib/node-entries/items-cap.mjs +0 -47
- package/esm2022/lib/node-entries/list-item-label.pipe.mjs +0 -37
- package/esm2022/lib/node-entries/node-cache.mjs +0 -73
- package/esm2022/lib/node-entries/node-data-source-remote.mjs +0 -4
- package/esm2022/lib/node-entries/node-data-source.mjs +0 -117
- package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +0 -117
- package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +0 -329
- package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +0 -44
- package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +0 -27
- package/esm2022/lib/node-entries/node-entries-global.service.mjs +0 -71
- package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +0 -42
- package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +0 -294
- package/esm2022/lib/node-entries/node-entries-templates.service.mjs +0 -11
- package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +0 -369
- package/esm2022/lib/node-entries/node-entries.component.mjs +0 -132
- package/esm2022/lib/node-entries/node-entries.module.mjs +0 -161
- package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +0 -125
- package/esm2022/lib/node-entries/node-stats-badges/node-stats-badges.component.mjs +0 -48
- package/esm2022/lib/node-entries/node-type-badge/node-type-badge.component.mjs +0 -36
- package/esm2022/lib/node-entries/option-button/option-button.component.mjs +0 -75
- package/esm2022/lib/node-entries/preview-image/preview-image.component.mjs +0 -53
- package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +0 -41
- package/esm2022/lib/node-url/node-url.component.mjs +0 -132
- package/esm2022/lib/pipes/file-size.pipe.mjs +0 -32
- package/esm2022/lib/pipes/format-date.pipe.mjs +0 -38
- package/esm2022/lib/pipes/mds-duration.pipe.mjs +0 -25
- package/esm2022/lib/pipes/node-icon.pipe.mjs +0 -18
- package/esm2022/lib/pipes/node-image-size.pipe.mjs +0 -24
- package/esm2022/lib/pipes/node-image.pipe.mjs +0 -55
- package/esm2022/lib/pipes/node-license.pipe.mjs +0 -24
- package/esm2022/lib/pipes/node-person-name.pipe.mjs +0 -50
- package/esm2022/lib/pipes/node-title.pipe.mjs +0 -35
- package/esm2022/lib/pipes/option-tooltip.pipe.mjs +0 -33
- package/esm2022/lib/pipes/property-slug.pipe.mjs +0 -16
- package/esm2022/lib/pipes/replace-chars.pipe.mjs +0 -29
- package/esm2022/lib/pipes/vcard-name.pipe.mjs +0 -25
- package/esm2022/lib/services/abstract/app.service.mjs +0 -3
- package/esm2022/lib/services/abstract/keyboard-shortcuts.service.mjs +0 -10
- package/esm2022/lib/services/abstract/options-helper.service.mjs +0 -3
- package/esm2022/lib/services/abstract/toast.service.mjs +0 -3
- package/esm2022/lib/services/accessibility.service.mjs +0 -73
- package/esm2022/lib/services/app-container.service.mjs +0 -69
- package/esm2022/lib/services/local-events.service.mjs +0 -43
- package/esm2022/lib/services/node-entries.service.mjs +0 -201
- package/esm2022/lib/services/node-helper.service.mjs +0 -330
- package/esm2022/lib/services/nodes-drag-drop.service.mjs +0 -155
- package/esm2022/lib/services/options-helper-data.service.mjs +0 -142
- package/esm2022/lib/services/render-helper.service.mjs +0 -114
- package/esm2022/lib/services/repo-url.service.mjs +0 -50
- package/esm2022/lib/services/search-helper.service.mjs +0 -52
- package/esm2022/lib/services/temporary-storage.service.mjs +0 -48
- package/esm2022/lib/services/ui.service.mjs +0 -327
- package/esm2022/lib/sort-dropdown/sort-dropdown.component.mjs +0 -50
- package/esm2022/lib/spinner/spinner.component.mjs +0 -19
- package/esm2022/lib/spinner-small/spinner-small.component.mjs +0 -18
- package/esm2022/lib/translations/fallback-translation-handler.mjs +0 -6
- package/esm2022/lib/translations/translation-loader.mjs +0 -219
- package/esm2022/lib/translations/translation-source.mjs +0 -11
- package/esm2022/lib/translations/translations.module.mjs +0 -82
- package/esm2022/lib/translations/translations.service.mjs +0 -238
- package/esm2022/lib/types/accessibillity.mjs +0 -19
- package/esm2022/lib/types/api-models.mjs +0 -2
- package/esm2022/lib/types/drag-drop.mjs +0 -2
- package/esm2022/lib/types/injection-tokens.mjs +0 -31
- package/esm2022/lib/types/keyboard-shortcuts.mjs +0 -11
- package/esm2022/lib/types/list-item.mjs +0 -41
- package/esm2022/lib/types/option-item.mjs +0 -192
- package/esm2022/lib/types/workflow.mjs +0 -25
- package/esm2022/lib/util/DateHelper.mjs +0 -200
- package/esm2022/lib/util/VCard.mjs +0 -278
- package/esm2022/lib/util/color-helper.mjs +0 -124
- package/esm2022/lib/util/duration-helper.mjs +0 -102
- package/esm2022/lib/util/functions.mjs +0 -13
- package/esm2022/lib/util/helper.mjs +0 -64
- package/esm2022/lib/util/isNumeric.mjs +0 -11
- package/esm2022/lib/util/rest-helper.mjs +0 -42
- package/esm2022/lib/util/ui-animation.mjs +0 -146
- package/esm2022/lib/util/ui-constants.mjs +0 -21
- package/esm2022/ngx-edu-sharing-ui.mjs +0 -5
- package/esm2022/public-api.mjs +0 -2
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Output } from '@angular/core';
|
|
2
|
-
import { Observable, ReplaySubject } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Gets the border-box dimensions of an element in an asynchronous manner.
|
|
7
|
-
*
|
|
8
|
-
* This allows subscribing to changes and using values as input to other Angular components without
|
|
9
|
-
* causing changed-after-checked errors.
|
|
10
|
-
*/
|
|
11
|
-
export class BorderBoxObserverDirective {
|
|
12
|
-
static observeElement(elementRef) {
|
|
13
|
-
return new Observable((subscriber) => {
|
|
14
|
-
const borderBoxObserver = new BorderBoxObserverDirective(elementRef);
|
|
15
|
-
borderBoxObserver.ngOnInit();
|
|
16
|
-
borderBoxObserver.borderBoxSubject.subscribe(subscriber);
|
|
17
|
-
return () => borderBoxObserver.ngOnDestroy();
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
constructor(elementRef) {
|
|
21
|
-
this.elementRef = elementRef;
|
|
22
|
-
this.borderBoxEmitter = new EventEmitter();
|
|
23
|
-
this.borderBoxSubject = new ReplaySubject(1);
|
|
24
|
-
this.width$ = this.borderBoxSubject.pipe(map(({ width }) => width));
|
|
25
|
-
this.height$ = this.borderBoxSubject.pipe(map(({ height }) => height));
|
|
26
|
-
}
|
|
27
|
-
ngOnInit() {
|
|
28
|
-
this.registerEventEmitter();
|
|
29
|
-
this.registerObserver();
|
|
30
|
-
// Can cause changed-after-checked errors if done synchronously.
|
|
31
|
-
void Promise.resolve().then(() => this.setInitialValue());
|
|
32
|
-
}
|
|
33
|
-
ngOnDestroy() {
|
|
34
|
-
this.observer.disconnect();
|
|
35
|
-
}
|
|
36
|
-
registerEventEmitter() {
|
|
37
|
-
this.borderBoxSubject.subscribe((borderBox) => this.borderBoxEmitter.emit(borderBox));
|
|
38
|
-
}
|
|
39
|
-
registerObserver() {
|
|
40
|
-
this.observer = new ResizeObserver((entries) => {
|
|
41
|
-
entries.forEach((entry) => {
|
|
42
|
-
const borderBoxSize = entry.borderBoxSize[0];
|
|
43
|
-
this.borderBoxSubject.next({
|
|
44
|
-
width: borderBoxSize.inlineSize,
|
|
45
|
-
height: borderBoxSize.blockSize,
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
this.observer.observe(this.elementRef.nativeElement);
|
|
50
|
-
}
|
|
51
|
-
setInitialValue() {
|
|
52
|
-
const boundingClientRect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
53
|
-
this.borderBoxSubject.next({
|
|
54
|
-
width: boundingClientRect.width,
|
|
55
|
-
height: boundingClientRect.height,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BorderBoxObserverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: BorderBoxObserverDirective, selector: "[esBorderBoxObserver]", outputs: { borderBoxEmitter: "esBorderBoxObserver" }, exportAs: ["borderBoxObserver"], ngImport: i0 }); }
|
|
60
|
-
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: BorderBoxObserverDirective, decorators: [{
|
|
62
|
-
type: Directive,
|
|
63
|
-
args: [{
|
|
64
|
-
selector: '[esBorderBoxObserver]',
|
|
65
|
-
exportAs: 'borderBoxObserver',
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { borderBoxEmitter: [{
|
|
68
|
-
type: Output,
|
|
69
|
-
args: ['esBorderBoxObserver']
|
|
70
|
-
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9yZGVyLWJveC1vYnNlcnZlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvYm9yZGVyLWJveC1vYnNlcnZlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT3JDOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQUNuQyxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQW1DO1FBQ3JELE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxNQUFNLGlCQUFpQixHQUFHLElBQUksMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDckUsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBVUQsWUFBb0IsVUFBbUM7UUFBbkMsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFSeEIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUcvRCxxQkFBZ0IsR0FBRyxJQUFJLGFBQWEsQ0FBWSxDQUFDLENBQUMsQ0FBQztRQUVwRSxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQy9ELFlBQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFUixDQUFDO0lBRTNELFFBQVE7UUFDSixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN4QixnRUFBZ0U7UUFDaEUsS0FBSyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sb0JBQW9CO1FBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sYUFBYSxHQUF1QixLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUN2QixLQUFLLEVBQUUsYUFBYSxDQUFDLFVBQVU7b0JBQy9CLE1BQU0sRUFBRSxhQUFhLENBQUMsU0FBUztpQkFDbEMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVPLGVBQWU7UUFDbkIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDdkIsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEtBQUs7WUFDL0IsTUFBTSxFQUFFLGtCQUFrQixDQUFDLE1BQU07U0FDcEMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F0RFEsMEJBQTBCO21HQUExQiwwQkFBMEI7OzRGQUExQiwwQkFBMEI7a0JBSnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7K0VBV2tDLGdCQUFnQjtzQkFBOUMsTUFBTTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbnRlcmZhY2UgQm9yZGVyQm94IHtcbiAgICB3aWR0aDogbnVtYmVyO1xuICAgIGhlaWdodDogbnVtYmVyO1xufVxuXG4vKipcbiAqIEdldHMgdGhlIGJvcmRlci1ib3ggZGltZW5zaW9ucyBvZiBhbiBlbGVtZW50IGluIGFuIGFzeW5jaHJvbm91cyBtYW5uZXIuXG4gKlxuICogVGhpcyBhbGxvd3Mgc3Vic2NyaWJpbmcgdG8gY2hhbmdlcyBhbmQgdXNpbmcgdmFsdWVzIGFzIGlucHV0IHRvIG90aGVyIEFuZ3VsYXIgY29tcG9uZW50cyB3aXRob3V0XG4gKiBjYXVzaW5nIGNoYW5nZWQtYWZ0ZXItY2hlY2tlZCBlcnJvcnMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VzQm9yZGVyQm94T2JzZXJ2ZXJdJyxcbiAgICBleHBvcnRBczogJ2JvcmRlckJveE9ic2VydmVyJyxcbn0pXG5leHBvcnQgY2xhc3MgQm9yZGVyQm94T2JzZXJ2ZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIG9ic2VydmVFbGVtZW50KGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogT2JzZXJ2YWJsZTxCb3JkZXJCb3g+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJCb3hPYnNlcnZlciA9IG5ldyBCb3JkZXJCb3hPYnNlcnZlckRpcmVjdGl2ZShlbGVtZW50UmVmKTtcbiAgICAgICAgICAgIGJvcmRlckJveE9ic2VydmVyLm5nT25Jbml0KCk7XG4gICAgICAgICAgICBib3JkZXJCb3hPYnNlcnZlci5ib3JkZXJCb3hTdWJqZWN0LnN1YnNjcmliZShzdWJzY3JpYmVyKTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBib3JkZXJCb3hPYnNlcnZlci5uZ09uRGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCdlc0JvcmRlckJveE9ic2VydmVyJykgYm9yZGVyQm94RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8Qm9yZGVyQm94PigpO1xuXG4gICAgcHJpdmF0ZSBvYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG4gICAgcHJpdmF0ZSByZWFkb25seSBib3JkZXJCb3hTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Qm9yZGVyQm94PigxKTtcblxuICAgIHdpZHRoJCA9IHRoaXMuYm9yZGVyQm94U3ViamVjdC5waXBlKG1hcCgoeyB3aWR0aCB9KSA9PiB3aWR0aCkpO1xuICAgIGhlaWdodCQgPSB0aGlzLmJvcmRlckJveFN1YmplY3QucGlwZShtYXAoKHsgaGVpZ2h0IH0pID0+IGhlaWdodCkpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pikge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRFbWl0dGVyKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJPYnNlcnZlcigpO1xuICAgICAgICAvLyBDYW4gY2F1c2UgY2hhbmdlZC1hZnRlci1jaGVja2VkIGVycm9ycyBpZiBkb25lIHN5bmNocm9ub3VzbHkuXG4gICAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldEluaXRpYWxWYWx1ZSgpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWdpc3RlckV2ZW50RW1pdHRlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ib3JkZXJCb3hTdWJqZWN0LnN1YnNjcmliZSgoYm9yZGVyQm94KSA9PiB0aGlzLmJvcmRlckJveEVtaXR0ZXIuZW1pdChib3JkZXJCb3gpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgIGVudHJpZXMuZm9yRWFjaCgoZW50cnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBib3JkZXJCb3hTaXplOiBSZXNpemVPYnNlcnZlclNpemUgPSBlbnRyeS5ib3JkZXJCb3hTaXplWzBdO1xuICAgICAgICAgICAgICAgIHRoaXMuYm9yZGVyQm94U3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGJvcmRlckJveFNpemUuaW5saW5lU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBib3JkZXJCb3hTaXplLmJsb2NrU2l6ZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEluaXRpYWxWYWx1ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYm91bmRpbmdDbGllbnRSZWN0ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIHRoaXMuYm9yZGVyQm94U3ViamVjdC5uZXh0KHtcbiAgICAgICAgICAgIHdpZHRoOiBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgsXG4gICAgICAgICAgICBoZWlnaHQ6IGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQsXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Checks whether text of the annotated element or a descendent (give a selector) was cut of, e.g.,
|
|
5
|
-
* with an ellipsis.
|
|
6
|
-
*
|
|
7
|
-
* Call `hasTextOverflow()` for the result.
|
|
8
|
-
*/
|
|
9
|
-
export class CheckTextOverflowDirective {
|
|
10
|
-
constructor(elementRef) {
|
|
11
|
-
this.elementRef = elementRef;
|
|
12
|
-
this.hasTextOverflow = delay(this.hasTextOverflow_);
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
this.textElement = this.getTextElement();
|
|
16
|
-
}
|
|
17
|
-
hasTextOverflow_() {
|
|
18
|
-
if (!this.textElement && this.selector) {
|
|
19
|
-
// refetch element in case it has changed
|
|
20
|
-
this.textElement = this.getTextElement();
|
|
21
|
-
}
|
|
22
|
-
const element = this.textElement;
|
|
23
|
-
if (element) {
|
|
24
|
-
return (element.offsetWidth < element.scrollWidth ||
|
|
25
|
-
// use buffer to prevent overflow caused by small margins
|
|
26
|
-
element.offsetHeight + 5 < element.scrollHeight);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
getTextElement() {
|
|
33
|
-
if (this.selector) {
|
|
34
|
-
return this.elementRef.nativeElement.querySelector(this.selector);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
return this.elementRef.nativeElement;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CheckTextOverflowDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: CheckTextOverflowDirective, selector: "[esCheckTextOverflow]", inputs: { selector: ["esCheckTextOverflow", "selector"] }, exportAs: ["esCheckTextOverflow"], ngImport: i0 }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: CheckTextOverflowDirective, decorators: [{
|
|
44
|
-
type: Directive,
|
|
45
|
-
args: [{
|
|
46
|
-
selector: '[esCheckTextOverflow]',
|
|
47
|
-
exportAs: 'esCheckTextOverflow',
|
|
48
|
-
}]
|
|
49
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { selector: [{
|
|
50
|
-
type: Input,
|
|
51
|
-
args: ['esCheckTextOverflow']
|
|
52
|
-
}] } });
|
|
53
|
-
/** Delay the result of a function one tick to avoid changed-after-checked errors. */
|
|
54
|
-
function delay(f) {
|
|
55
|
-
let previousValue = null;
|
|
56
|
-
let updating = false;
|
|
57
|
-
return function () {
|
|
58
|
-
if (!updating) {
|
|
59
|
-
const newValue = f.apply(this);
|
|
60
|
-
if (newValue !== previousValue) {
|
|
61
|
-
updating = true;
|
|
62
|
-
void Promise.resolve().then(() => {
|
|
63
|
-
previousValue = newValue;
|
|
64
|
-
updating = false;
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return previousValue;
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvY2hlY2stdGV4dC1vdmVyZmxvdy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBRXJFOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjtJQU9uQyxZQUE2QixVQUFtQztRQUFuQyxlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUZoRSxvQkFBZSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUVvQixDQUFDO0lBRXBFLFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQyx5Q0FBeUM7WUFDekMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDakMsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLE9BQU8sQ0FDSCxPQUFPLENBQUMsV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXO2dCQUN6Qyx5REFBeUQ7Z0JBQ3pELE9BQU8sQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQ2xELENBQUM7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLE9BQU8sS0FBSyxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEUsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDOytHQXBDUSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUscUJBQXFCO2lCQUNsQzsrRUFFaUMsUUFBUTtzQkFBckMsS0FBSzt1QkFBQyxxQkFBcUI7O0FBc0NoQyxxRkFBcUY7QUFDckYsU0FBUyxLQUFLLENBQUksQ0FBVTtJQUN4QixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUM7SUFDOUIsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE9BQU87UUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDWixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksUUFBUSxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUM3QixRQUFRLEdBQUcsSUFBSSxDQUFDO2dCQUNoQixLQUFLLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUM3QixhQUFhLEdBQUcsUUFBUSxDQUFDO29CQUN6QixRQUFRLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRleHQgb2YgdGhlIGFubm90YXRlZCBlbGVtZW50IG9yIGEgZGVzY2VuZGVudCAoZ2l2ZSBhIHNlbGVjdG9yKSB3YXMgY3V0IG9mLCBlLmcuLFxuICogd2l0aCBhbiBlbGxpcHNpcy5cbiAqXG4gKiBDYWxsIGBoYXNUZXh0T3ZlcmZsb3coKWAgZm9yIHRoZSByZXN1bHQuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VzQ2hlY2tUZXh0T3ZlcmZsb3ddJyxcbiAgICBleHBvcnRBczogJ2VzQ2hlY2tUZXh0T3ZlcmZsb3cnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGVja1RleHRPdmVyZmxvd0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCdlc0NoZWNrVGV4dE92ZXJmbG93Jykgc2VsZWN0b3I/OiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIHRleHRFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGhhc1RleHRPdmVyZmxvdyA9IGRlbGF5KHRoaXMuaGFzVGV4dE92ZXJmbG93Xyk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGV4dEVsZW1lbnQgPSB0aGlzLmdldFRleHRFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBoYXNUZXh0T3ZlcmZsb3dfKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMudGV4dEVsZW1lbnQgJiYgdGhpcy5zZWxlY3Rvcikge1xuICAgICAgICAgICAgLy8gcmVmZXRjaCBlbGVtZW50IGluIGNhc2UgaXQgaGFzIGNoYW5nZWRcbiAgICAgICAgICAgIHRoaXMudGV4dEVsZW1lbnQgPSB0aGlzLmdldFRleHRFbGVtZW50KCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMudGV4dEVsZW1lbnQ7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIGVsZW1lbnQub2Zmc2V0V2lkdGggPCBlbGVtZW50LnNjcm9sbFdpZHRoIHx8XG4gICAgICAgICAgICAgICAgLy8gdXNlIGJ1ZmZlciB0byBwcmV2ZW50IG92ZXJmbG93IGNhdXNlZCBieSBzbWFsbCBtYXJnaW5zXG4gICAgICAgICAgICAgICAgZWxlbWVudC5vZmZzZXRIZWlnaHQgKyA1IDwgZWxlbWVudC5zY3JvbGxIZWlnaHRcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRleHRFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRoaXMuc2VsZWN0b3IpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogRGVsYXkgdGhlIHJlc3VsdCBvZiBhIGZ1bmN0aW9uIG9uZSB0aWNrIHRvIGF2b2lkIGNoYW5nZWQtYWZ0ZXItY2hlY2tlZCBlcnJvcnMuICovXG5mdW5jdGlvbiBkZWxheTxUPihmOiAoKSA9PiBUKTogKCkgPT4gVCB7XG4gICAgbGV0IHByZXZpb3VzVmFsdWU6IGFueSA9IG51bGw7XG4gICAgbGV0IHVwZGF0aW5nID0gZmFsc2U7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKCF1cGRhdGluZykge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBmLmFwcGx5KHRoaXMpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlICE9PSBwcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdXBkYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHZvaWQgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZTtcbiAgICB9O1xufVxuIl19
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export const dragNodesTransferType = 'application/nodes';
|
|
2
|
-
const storageKey = 'app-drag-nodes';
|
|
3
|
-
export function readDraggedNodes() {
|
|
4
|
-
const json = window.localStorage.getItem(storageKey);
|
|
5
|
-
return JSON.parse(json);
|
|
6
|
-
}
|
|
7
|
-
export function saveDraggedNodes(nodes) {
|
|
8
|
-
const json = JSON.stringify(nodes);
|
|
9
|
-
window.localStorage.setItem(storageKey, json);
|
|
10
|
-
}
|
|
11
|
-
export function clearDraggedNodes() {
|
|
12
|
-
window.localStorage.removeItem(storageKey);
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1ub2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvZGlyZWN0aXZlcy9kcmFnLW5vZGVzL2RyYWctbm9kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0JBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO0FBRXpELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDO0FBRXBDLE1BQU0sVUFBVSxnQkFBZ0I7SUFDNUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsS0FBYTtJQUMxQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUM3QixNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgRHJvcEFjdGlvbiB9IGZyb20gJy4uLy4uL3R5cGVzL2RyYWctZHJvcCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJhZ0RhdGFMZWdhY3kge1xuICAgIGV2ZW50PzogRHJhZ0V2ZW50O1xuICAgIG5vZGVzPzogTm9kZVtdO1xuICAgIGRyb3BBY3Rpb24/OiBEcm9wQWN0aW9uO1xufVxuZXhwb3J0IHR5cGUgRHJvcEFjdGlvbkxlZ2FjeSA9ICdjb3B5JyB8ICdtb3ZlJyB8ICdsaW5rJztcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wRGF0YUxlZ2FjeSBleHRlbmRzIERyYWdEYXRhTGVnYWN5IHtcbiAgICB0YXJnZXQ6IERyYWdOb2RlVGFyZ2V0O1xufVxuXG5leHBvcnQgdHlwZSBEcmFnTm9kZVRhcmdldCA9IE5vZGUgfCAnSE9NRSc7XG5cbmV4cG9ydCBjb25zdCBkcmFnTm9kZXNUcmFuc2ZlclR5cGUgPSAnYXBwbGljYXRpb24vbm9kZXMnO1xuXG5jb25zdCBzdG9yYWdlS2V5ID0gJ2FwcC1kcmFnLW5vZGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWREcmFnZ2VkTm9kZXMoKTogTm9kZVtdIHtcbiAgICBjb25zdCBqc29uID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKHN0b3JhZ2VLZXkpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGpzb24pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2F2ZURyYWdnZWROb2Rlcyhub2RlczogTm9kZVtdKTogdm9pZCB7XG4gICAgY29uc3QganNvbiA9IEpTT04uc3RyaW5naWZ5KG5vZGVzKTtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oc3RvcmFnZUtleSwganNvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckRyYWdnZWROb2RlcygpOiB2b2lkIHtcbiAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oc3RvcmFnZUtleSk7XG59XG4iXX0=
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, HostListener, Input, Output, } from '@angular/core';
|
|
2
|
-
import { clearDraggedNodes, dragNodesTransferType, saveDraggedNodes } from './drag-nodes';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Handle dragging and dropping of node elements.
|
|
6
|
-
*
|
|
7
|
-
* Use in combination with `NodesDropTargetDirective`.
|
|
8
|
-
*
|
|
9
|
-
* When nodes that set this directive are dragged, we save information about
|
|
10
|
-
* these nodes that can be used by `NodesDropTargetDirective`.
|
|
11
|
-
*/
|
|
12
|
-
export class NodesDragSourceDirective {
|
|
13
|
-
constructor(elementRef) {
|
|
14
|
-
this.elementRef = elementRef;
|
|
15
|
-
/**
|
|
16
|
-
* Triggered when processing the dragstart event.
|
|
17
|
-
*
|
|
18
|
-
* Changes to `nodes` performed by event handlers of `nodesDragStart` will
|
|
19
|
-
* be taken into account for the drag operation.
|
|
20
|
-
*/
|
|
21
|
-
this.nodesDragStart = new EventEmitter(false);
|
|
22
|
-
/**
|
|
23
|
-
* Triggered when processing the dragend event.
|
|
24
|
-
*/
|
|
25
|
-
this.nodesDragEnd = new EventEmitter();
|
|
26
|
-
}
|
|
27
|
-
ngOnChanges(changes) {
|
|
28
|
-
// Set the `draggable` attribute when this directive is active.
|
|
29
|
-
if (changes.nodes) {
|
|
30
|
-
if (!!changes.nodes.currentValue !== !!changes.nodes.previousValue) {
|
|
31
|
-
this.elementRef.nativeElement.setAttribute('draggable', (!!this.nodes).toString());
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
onDragStart(event) {
|
|
36
|
-
if (!this.nodes) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
this.nodesDragStart.emit(event);
|
|
40
|
-
// Use the transfer-data type to identify a node-drag operation.
|
|
41
|
-
event.dataTransfer.setData(dragNodesTransferType, '');
|
|
42
|
-
// Chrome doesn't provide drag transfer data to dragover event listeners
|
|
43
|
-
// for security reasons, so we provide the data via localStorage.
|
|
44
|
-
//
|
|
45
|
-
// Wait for updates by event handlers of `nodesDragStart` to propagate.
|
|
46
|
-
setTimeout(() => {
|
|
47
|
-
saveDraggedNodes(this.nodes);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
onDragEnd(event) {
|
|
51
|
-
if (!this.nodes) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
this.nodesDragEnd.emit(event);
|
|
55
|
-
clearDraggedNodes();
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragSourceDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: NodesDragSourceDirective, selector: "[esNodesDragSource]", inputs: { nodes: ["esNodesDragSource", "nodes"] }, outputs: { nodesDragStart: "nodesDragStart", nodesDragEnd: "nodesDragEnd" }, host: { listeners: { "dragstart": "onDragStart($event)", "dragend": "onDragEnd($event)" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragSourceDirective, decorators: [{
|
|
61
|
-
type: Directive,
|
|
62
|
-
args: [{
|
|
63
|
-
selector: '[esNodesDragSource]',
|
|
64
|
-
}]
|
|
65
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { nodes: [{
|
|
66
|
-
type: Input,
|
|
67
|
-
args: ['esNodesDragSource']
|
|
68
|
-
}], nodesDragStart: [{
|
|
69
|
-
type: Output
|
|
70
|
-
}], nodesDragEnd: [{
|
|
71
|
-
type: Output
|
|
72
|
-
}], onDragStart: [{
|
|
73
|
-
type: HostListener,
|
|
74
|
-
args: ['dragstart', ['$event']]
|
|
75
|
-
}], onDragEnd: [{
|
|
76
|
-
type: HostListener,
|
|
77
|
-
args: ['dragend', ['$event']]
|
|
78
|
-
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtZHJhZy1zb3VyY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWctbm9kZXMvbm9kZXMtZHJhZy1zb3VyY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxHQUlULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFMUY7Ozs7Ozs7R0FPRztBQUlILE1BQU0sT0FBTyx3QkFBd0I7SUFvQmpDLFlBQW9CLFVBQStCO1FBQS9CLGVBQVUsR0FBVixVQUFVLENBQXFCO1FBWm5EOzs7OztXQUtHO1FBQ08sbUJBQWMsR0FBRyxJQUFJLFlBQVksQ0FBWSxLQUFLLENBQUMsQ0FBQztRQUM5RDs7V0FFRztRQUNPLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUVELENBQUM7SUFFdkQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLCtEQUErRDtRQUMvRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDakUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUN2RixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFc0MsV0FBVyxDQUFDLEtBQWdCO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLGdFQUFnRTtRQUNoRSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0RCx3RUFBd0U7UUFDeEUsaUVBQWlFO1FBQ2pFLEVBQUU7UUFDRix1RUFBdUU7UUFDdkUsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNaLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFb0MsU0FBUyxDQUFDLEtBQWdCO1FBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLGlCQUFpQixFQUFFLENBQUM7SUFDeEIsQ0FBQzsrR0FyRFEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSHBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtpQkFDbEM7K0VBTytCLEtBQUs7c0JBQWhDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVFoQixjQUFjO3NCQUF2QixNQUFNO2dCQUlHLFlBQVk7c0JBQXJCLE1BQU07Z0JBYWdDLFdBQVc7c0JBQWpELFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdCQSxTQUFTO3NCQUE3QyxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgY2xlYXJEcmFnZ2VkTm9kZXMsIGRyYWdOb2Rlc1RyYW5zZmVyVHlwZSwgc2F2ZURyYWdnZWROb2RlcyB9IGZyb20gJy4vZHJhZy1ub2Rlcyc7XG5cbi8qKlxuICogSGFuZGxlIGRyYWdnaW5nIGFuZCBkcm9wcGluZyBvZiBub2RlIGVsZW1lbnRzLlxuICpcbiAqIFVzZSBpbiBjb21iaW5hdGlvbiB3aXRoIGBOb2Rlc0Ryb3BUYXJnZXREaXJlY3RpdmVgLlxuICpcbiAqIFdoZW4gbm9kZXMgdGhhdCBzZXQgdGhpcyBkaXJlY3RpdmUgYXJlIGRyYWdnZWQsIHdlIHNhdmUgaW5mb3JtYXRpb24gYWJvdXRcbiAqIHRoZXNlIG5vZGVzIHRoYXQgY2FuIGJlIHVzZWQgYnkgYE5vZGVzRHJvcFRhcmdldERpcmVjdGl2ZWAuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2VzTm9kZXNEcmFnU291cmNlXScsXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVzRHJhZ1NvdXJjZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgLyoqXG4gICAgICogVGhlIG5vZGVzIHRvIGJlIGRyYWdnZWQuXG4gICAgICpcbiAgICAgKiBXaGVuIG5vdCBzZXQsIHRoaXMgZGlyZWN0aXZlIGlzIGVmZmVjdGl2ZWx5IGRpc2FibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgnZXNOb2Rlc0RyYWdTb3VyY2UnKSBub2Rlcz86IE5vZGVbXTtcblxuICAgIC8qKlxuICAgICAqIFRyaWdnZXJlZCB3aGVuIHByb2Nlc3NpbmcgdGhlIGRyYWdzdGFydCBldmVudC5cbiAgICAgKlxuICAgICAqIENoYW5nZXMgdG8gYG5vZGVzYCBwZXJmb3JtZWQgYnkgZXZlbnQgaGFuZGxlcnMgb2YgYG5vZGVzRHJhZ1N0YXJ0YCB3aWxsXG4gICAgICogYmUgdGFrZW4gaW50byBhY2NvdW50IGZvciB0aGUgZHJhZyBvcGVyYXRpb24uXG4gICAgICovXG4gICAgQE91dHB1dCgpIG5vZGVzRHJhZ1N0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBkcmFnZW5kIGV2ZW50LlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBub2Rlc0RyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxFbGVtZW50Pikge31cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgLy8gU2V0IHRoZSBgZHJhZ2dhYmxlYCBhdHRyaWJ1dGUgd2hlbiB0aGlzIGRpcmVjdGl2ZSBpcyBhY3RpdmUuXG4gICAgICAgIGlmIChjaGFuZ2VzLm5vZGVzKSB7XG4gICAgICAgICAgICBpZiAoISFjaGFuZ2VzLm5vZGVzLmN1cnJlbnRWYWx1ZSAhPT0gISFjaGFuZ2VzLm5vZGVzLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RyYWdnYWJsZScsICghIXRoaXMubm9kZXMpLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignZHJhZ3N0YXJ0JywgWyckZXZlbnQnXSkgb25EcmFnU3RhcnQoZXZlbnQ6IERyYWdFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMubm9kZXMpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5vZGVzRHJhZ1N0YXJ0LmVtaXQoZXZlbnQpO1xuICAgICAgICAvLyBVc2UgdGhlIHRyYW5zZmVyLWRhdGEgdHlwZSB0byBpZGVudGlmeSBhIG5vZGUtZHJhZyBvcGVyYXRpb24uXG4gICAgICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXREYXRhKGRyYWdOb2Rlc1RyYW5zZmVyVHlwZSwgJycpO1xuICAgICAgICAvLyBDaHJvbWUgZG9lc24ndCBwcm92aWRlIGRyYWcgdHJhbnNmZXIgZGF0YSB0byBkcmFnb3ZlciBldmVudCBsaXN0ZW5lcnNcbiAgICAgICAgLy8gZm9yIHNlY3VyaXR5IHJlYXNvbnMsIHNvIHdlIHByb3ZpZGUgdGhlIGRhdGEgdmlhIGxvY2FsU3RvcmFnZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gV2FpdCBmb3IgdXBkYXRlcyBieSBldmVudCBoYW5kbGVycyBvZiBgbm9kZXNEcmFnU3RhcnRgIHRvIHByb3BhZ2F0ZS5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBzYXZlRHJhZ2dlZE5vZGVzKHRoaXMubm9kZXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdkcmFnZW5kJywgWyckZXZlbnQnXSkgb25EcmFnRW5kKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLm5vZGVzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ub2Rlc0RyYWdFbmQuZW1pdChldmVudCk7XG4gICAgICAgIGNsZWFyRHJhZ2dlZE5vZGVzKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Directive } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "@angular/cdk/drag-drop";
|
|
4
|
-
import * as i2 from "../../services/nodes-drag-drop.service";
|
|
5
|
-
/**
|
|
6
|
-
* A draggable node.
|
|
7
|
-
*
|
|
8
|
-
* Use in combination with `cdkDrag`, setting `cdkDragData` to the array of nodes to be dragged.
|
|
9
|
-
*/
|
|
10
|
-
export class NodesDragDirective {
|
|
11
|
-
constructor(cdkDrag, nodesDragDrop) {
|
|
12
|
-
this.cdkDrag = cdkDrag;
|
|
13
|
-
this.nodesDragDrop = nodesDragDrop;
|
|
14
|
-
this.cdkDrag.started.subscribe((event) => {
|
|
15
|
-
this.nodesDragDrop.draggedNodes = event.source.data;
|
|
16
|
-
// Position the preview element (the one being dragged around) next to the cursor to
|
|
17
|
-
// avoid covering possible drop targets with the preview.
|
|
18
|
-
event.source._dragRef['_pickupPositionInElement'] = { x: 0, y: 0 };
|
|
19
|
-
});
|
|
20
|
-
this.cdkDrag.released.subscribe(() => {
|
|
21
|
-
if (this.nodesDragDrop.canDrop?.accept) {
|
|
22
|
-
this.inhibitPreviewAnimation();
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
this.cdkDrag.dropped.subscribe(() => {
|
|
26
|
-
this.nodesDragDrop.onDropped(this.cdkDrag.data);
|
|
27
|
-
this.nodesDragDrop.draggedNodes = null;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
inhibitPreviewAnimation() {
|
|
31
|
-
const style = document.createElement('style');
|
|
32
|
-
document.body.appendChild(style);
|
|
33
|
-
style.innerHTML = `.cdk-drag-preview { transition: none !important; }`;
|
|
34
|
-
// Don't need to go outside ng zone because `cdkDrag.released` already runs outside the
|
|
35
|
-
// zone.
|
|
36
|
-
setTimeout(() => {
|
|
37
|
-
document.body.removeChild(style);
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragDirective, deps: [{ token: i1.CdkDrag }, { token: i2.NodesDragDropService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: NodesDragDirective, selector: "[esNodesDrag]", ngImport: i0 }); }
|
|
42
|
-
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDragDirective, decorators: [{
|
|
44
|
-
type: Directive,
|
|
45
|
-
args: [{
|
|
46
|
-
selector: '[esNodesDrag]',
|
|
47
|
-
}]
|
|
48
|
-
}], ctorParameters: () => [{ type: i1.CdkDrag }, { type: i2.NodesDragDropService }] });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtZHJhZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL2RpcmVjdGl2ZXMvZHJhZy1ub2Rlcy9ub2Rlcy1kcmFnLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSTFDOzs7O0dBSUc7QUFJSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzNCLFlBQW9CLE9BQXdCLEVBQVUsYUFBbUM7UUFBckUsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDckYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDcEQsb0ZBQW9GO1lBQ3BGLHlEQUF5RDtZQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sdUJBQXVCO1FBQzNCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsS0FBSyxDQUFDLFNBQVMsR0FBRyxvREFBb0QsQ0FBQztRQUN2RSx1RkFBdUY7UUFDdkYsUUFBUTtRQUNSLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBNUJRLGtCQUFrQjttR0FBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUg5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm9kZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgTm9kZXNEcmFnRHJvcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9ub2Rlcy1kcmFnLWRyb3Auc2VydmljZSc7XG5cbi8qKlxuICogQSBkcmFnZ2FibGUgbm9kZS5cbiAqXG4gKiBVc2UgaW4gY29tYmluYXRpb24gd2l0aCBgY2RrRHJhZ2AsIHNldHRpbmcgYGNka0RyYWdEYXRhYCB0byB0aGUgYXJyYXkgb2Ygbm9kZXMgdG8gYmUgZHJhZ2dlZC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXNOb2Rlc0RyYWddJyxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZXNEcmFnRGlyZWN0aXZlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNka0RyYWc6IENka0RyYWc8Tm9kZVtdPiwgcHJpdmF0ZSBub2Rlc0RyYWdEcm9wOiBOb2Rlc0RyYWdEcm9wU2VydmljZSkge1xuICAgICAgICB0aGlzLmNka0RyYWcuc3RhcnRlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzRHJhZ0Ryb3AuZHJhZ2dlZE5vZGVzID0gZXZlbnQuc291cmNlLmRhdGE7XG4gICAgICAgICAgICAvLyBQb3NpdGlvbiB0aGUgcHJldmlldyBlbGVtZW50ICh0aGUgb25lIGJlaW5nIGRyYWdnZWQgYXJvdW5kKSBuZXh0IHRvIHRoZSBjdXJzb3IgdG9cbiAgICAgICAgICAgIC8vIGF2b2lkIGNvdmVyaW5nIHBvc3NpYmxlIGRyb3AgdGFyZ2V0cyB3aXRoIHRoZSBwcmV2aWV3LlxuICAgICAgICAgICAgZXZlbnQuc291cmNlLl9kcmFnUmVmWydfcGlja3VwUG9zaXRpb25JbkVsZW1lbnQnXSA9IHsgeDogMCwgeTogMCB9O1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5jZGtEcmFnLnJlbGVhc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5ub2Rlc0RyYWdEcm9wLmNhbkRyb3A/LmFjY2VwdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5oaWJpdFByZXZpZXdBbmltYXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY2RrRHJhZy5kcm9wcGVkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzRHJhZ0Ryb3Aub25Ecm9wcGVkKHRoaXMuY2RrRHJhZy5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMubm9kZXNEcmFnRHJvcC5kcmFnZ2VkTm9kZXMgPSBudWxsO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaGliaXRQcmV2aWV3QW5pbWF0aW9uKCkge1xuICAgICAgICBjb25zdCBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuICAgICAgICBzdHlsZS5pbm5lckhUTUwgPSBgLmNkay1kcmFnLXByZXZpZXcgeyB0cmFuc2l0aW9uOiBub25lICFpbXBvcnRhbnQ7IH1gO1xuICAgICAgICAvLyBEb24ndCBuZWVkIHRvIGdvIG91dHNpZGUgbmcgem9uZSBiZWNhdXNlIGBjZGtEcmFnLnJlbGVhc2VkYCBhbHJlYWR5IHJ1bnMgb3V0c2lkZSB0aGVcbiAgICAgICAgLy8gem9uZS5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHN0eWxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Directive, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
3
|
-
import { takeUntil } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../../services/nodes-drag-drop.service";
|
|
6
|
-
const ACTIVE_DROP_TARGET_ACCEPT_CLASS = 'es-nodes-active-drop-target-accept';
|
|
7
|
-
const ACTIVE_DROP_TARGET_DENY_CLASS = 'es-nodes-active-drop-target-deny';
|
|
8
|
-
export class NodesDropTargetDirective {
|
|
9
|
-
get active() {
|
|
10
|
-
return this.activeDropTargetSubject.value;
|
|
11
|
-
}
|
|
12
|
-
constructor(ngZone, elementRef, nodesDragDrop) {
|
|
13
|
-
this.ngZone = ngZone;
|
|
14
|
-
this.elementRef = elementRef;
|
|
15
|
-
this.nodesDragDrop = nodesDragDrop;
|
|
16
|
-
this.nodeDropped = new EventEmitter();
|
|
17
|
-
this.activeDropTargetSubject = new BehaviorSubject(null);
|
|
18
|
-
this.destroyed = new Subject();
|
|
19
|
-
this.registerMouseEnterLeave();
|
|
20
|
-
this.registerActiveDropTarget();
|
|
21
|
-
}
|
|
22
|
-
ngOnDestroy() {
|
|
23
|
-
this.destroyed.next();
|
|
24
|
-
this.destroyed.complete();
|
|
25
|
-
}
|
|
26
|
-
_setActiveDropTarget(value) {
|
|
27
|
-
this.activeDropTargetSubject.next(value);
|
|
28
|
-
}
|
|
29
|
-
registerMouseEnterLeave() {
|
|
30
|
-
this.ngZone.runOutsideAngular(() => {
|
|
31
|
-
this.elementRef.nativeElement.addEventListener('mouseenter', () => this.nodesDragDrop.onMouseEnter(this));
|
|
32
|
-
this.elementRef.nativeElement.addEventListener('mouseleave', () => this.nodesDragDrop.onMouseLeave(this));
|
|
33
|
-
// Firefox does not fire a mouseleave event when the element is removed from the DOM
|
|
34
|
-
// while being hovered. When an element is dragged, it will be replaced with a
|
|
35
|
-
// placeholder. If the element was also a drop target, we would think that we are still
|
|
36
|
-
// hovering the element.
|
|
37
|
-
observeRemovedFromParent(this.elementRef.nativeElement)
|
|
38
|
-
.pipe(takeUntil(this.destroyed))
|
|
39
|
-
.subscribe(() => this.nodesDragDrop.onMouseLeave(this));
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
registerActiveDropTarget() {
|
|
43
|
-
this.activeDropTargetSubject
|
|
44
|
-
.pipe(takeUntil(this.destroyed))
|
|
45
|
-
.subscribe((dropTargetState) => {
|
|
46
|
-
const canDrop = dropTargetState?.canDrop;
|
|
47
|
-
const classList = this.elementRef.nativeElement.classList;
|
|
48
|
-
classList.remove(ACTIVE_DROP_TARGET_ACCEPT_CLASS, ACTIVE_DROP_TARGET_DENY_CLASS);
|
|
49
|
-
if (canDrop?.accept) {
|
|
50
|
-
classList.add(ACTIVE_DROP_TARGET_ACCEPT_CLASS);
|
|
51
|
-
}
|
|
52
|
-
else if (canDrop?.denyExplicit) {
|
|
53
|
-
classList.add(ACTIVE_DROP_TARGET_DENY_CLASS);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDropTargetDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.NodesDragDropService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
58
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: NodesDropTargetDirective, selector: "[esNodesDropTarget]", inputs: { target: ["esNodesDropTarget", "target"], canDropNodes: "canDropNodes" }, outputs: { nodeDropped: "nodeDropped" }, exportAs: ["esNodesDropTarget"], ngImport: i0 }); }
|
|
59
|
-
}
|
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: NodesDropTargetDirective, decorators: [{
|
|
61
|
-
type: Directive,
|
|
62
|
-
args: [{
|
|
63
|
-
selector: '[esNodesDropTarget]',
|
|
64
|
-
exportAs: 'esNodesDropTarget',
|
|
65
|
-
}]
|
|
66
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.NodesDragDropService }], propDecorators: { target: [{
|
|
67
|
-
type: Input,
|
|
68
|
-
args: ['esNodesDropTarget']
|
|
69
|
-
}], canDropNodes: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}], nodeDropped: [{
|
|
72
|
-
type: Output
|
|
73
|
-
}] } });
|
|
74
|
-
function observeRemovedFromParent(element) {
|
|
75
|
-
return new Observable((subscriber) => {
|
|
76
|
-
const observer = new MutationObserver((event) => {
|
|
77
|
-
for (const mutation of event) {
|
|
78
|
-
// @ts-ignore
|
|
79
|
-
if ([...mutation.removedNodes].includes(element)) {
|
|
80
|
-
subscriber.next();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
// Wait for `element` to be attached to the DOM.
|
|
85
|
-
let timeout = setTimeout(() => {
|
|
86
|
-
timeout = null;
|
|
87
|
-
observer.observe(element.parentNode, { childList: true, subtree: false });
|
|
88
|
-
});
|
|
89
|
-
return () => {
|
|
90
|
-
// In case the element was destroyed before we attached the mutation observer, we cancel
|
|
91
|
-
// the observable returned by this function and don't attach the mutation observer.
|
|
92
|
-
if (timeout !== null) {
|
|
93
|
-
// TODO: Investigate elements that trigger the following warning.
|
|
94
|
-
//
|
|
95
|
-
// console.warn(
|
|
96
|
-
// 'Possible performance leak: the element got destroyed before it could be added to the DOM.',
|
|
97
|
-
// element,
|
|
98
|
-
// );
|
|
99
|
-
clearTimeout(timeout);
|
|
100
|
-
}
|
|
101
|
-
observer.disconnect();
|
|
102
|
-
};
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMtZHJvcC10YXJnZXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9kaXJlY3RpdmVzL2RyYWctbm9kZXMvbm9kZXMtZHJvcC10YXJnZXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSTNDLE1BQU0sK0JBQStCLEdBQUcsb0NBQW9DLENBQUM7QUFDN0UsTUFBTSw2QkFBNkIsR0FBRyxrQ0FBa0MsQ0FBQztBQU16RSxNQUFNLE9BQU8sd0JBQXdCO0lBS2pDLElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQztJQUM5QyxDQUFDO0lBS0QsWUFDWSxNQUFjLEVBQ2QsVUFBbUMsRUFDbkMsYUFBbUM7UUFGbkMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQVpyQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFNaEQsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQXlCLElBQUksQ0FBQyxDQUFDO1FBQzVFLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBT3BDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUE2QjtRQUM5QyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyx1QkFBdUI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUM5RCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FDeEMsQ0FBQztZQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDOUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQ3hDLENBQUM7WUFDRixvRkFBb0Y7WUFDcEYsOEVBQThFO1lBQzlFLHVGQUF1RjtZQUN2Rix3QkFBd0I7WUFDeEIsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7aUJBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUMvQixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx3QkFBd0I7UUFDNUIsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMvQixTQUFTLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtZQUMzQixNQUFNLE9BQU8sR0FBRyxlQUFlLEVBQUUsT0FBTyxDQUFDO1lBQ3pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztZQUMxRCxTQUFTLENBQUMsTUFBTSxDQUFDLCtCQUErQixFQUFFLDZCQUE2QixDQUFDLENBQUM7WUFDakYsSUFBSSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ2xCLFNBQVMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLElBQUksT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUMvQixTQUFTLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDakQsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzsrR0E3RFEsd0JBQXdCO21HQUF4Qix3QkFBd0I7OzRGQUF4Qix3QkFBd0I7a0JBSnBDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7dUlBRStCLE1BQU07c0JBQWpDLEtBQUs7dUJBQUMsbUJBQW1CO2dCQUNqQixZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07O0FBNkRYLFNBQVMsd0JBQXdCLENBQUMsT0FBb0I7SUFDbEQsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM1QyxLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUMzQixhQUFhO2dCQUNiLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDL0MsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN0QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsZ0RBQWdEO1FBQ2hELElBQUksT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNmLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLEdBQUcsRUFBRTtZQUNSLHdGQUF3RjtZQUN4RixtRkFBbUY7WUFDbkYsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ25CLGlFQUFpRTtnQkFDakUsRUFBRTtnQkFDRixnQkFBZ0I7Z0JBQ2hCLG1HQUFtRztnQkFDbkcsZUFBZTtnQkFDZixLQUFLO2dCQUNMLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FuRHJvcCwgRHJhZ0RhdGEsIERyb3BUYXJnZXRTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBOb2Rlc0RyYWdEcm9wU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL25vZGVzLWRyYWctZHJvcC5zZXJ2aWNlJztcblxuY29uc3QgQUNUSVZFX0RST1BfVEFSR0VUX0FDQ0VQVF9DTEFTUyA9ICdlcy1ub2Rlcy1hY3RpdmUtZHJvcC10YXJnZXQtYWNjZXB0JztcbmNvbnN0IEFDVElWRV9EUk9QX1RBUkdFVF9ERU5ZX0NMQVNTID0gJ2VzLW5vZGVzLWFjdGl2ZS1kcm9wLXRhcmdldC1kZW55JztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXNOb2Rlc0Ryb3BUYXJnZXRdJyxcbiAgICBleHBvcnRBczogJ2VzTm9kZXNEcm9wVGFyZ2V0Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm9kZXNEcm9wVGFyZ2V0RGlyZWN0aXZlPFQgPSB1bmtub3duPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCdlc05vZGVzRHJvcFRhcmdldCcpIHRhcmdldDogVDtcbiAgICBASW5wdXQoKSBjYW5Ecm9wTm9kZXM6IChkcmFnRGF0YTogRHJhZ0RhdGE8VD4pID0+IENhbkRyb3A7XG4gICAgQE91dHB1dCgpIG5vZGVEcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRGF0YTxUPj4oKTtcblxuICAgIGdldCBhY3RpdmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGl2ZURyb3BUYXJnZXRTdWJqZWN0LnZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWN0aXZlRHJvcFRhcmdldFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERyb3BUYXJnZXRTdGF0ZSB8IG51bGw+KG51bGwpO1xuICAgIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIG5vZGVzRHJhZ0Ryb3A6IE5vZGVzRHJhZ0Ryb3BTZXJ2aWNlLFxuICAgICkge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyTW91c2VFbnRlckxlYXZlKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJBY3RpdmVEcm9wVGFyZ2V0KCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBfc2V0QWN0aXZlRHJvcFRhcmdldCh2YWx1ZTogRHJvcFRhcmdldFN0YXRlIHwgbnVsbCkge1xuICAgICAgICB0aGlzLmFjdGl2ZURyb3BUYXJnZXRTdWJqZWN0Lm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJNb3VzZUVudGVyTGVhdmUoKSB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZW50ZXInLCAoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMubm9kZXNEcmFnRHJvcC5vbk1vdXNlRW50ZXIodGhpcyksXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VsZWF2ZScsICgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5ub2Rlc0RyYWdEcm9wLm9uTW91c2VMZWF2ZSh0aGlzKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvLyBGaXJlZm94IGRvZXMgbm90IGZpcmUgYSBtb3VzZWxlYXZlIGV2ZW50IHdoZW4gdGhlIGVsZW1lbnQgaXMgcmVtb3ZlZCBmcm9tIHRoZSBET01cbiAgICAgICAgICAgIC8vIHdoaWxlIGJlaW5nIGhvdmVyZWQuIFdoZW4gYW4gZWxlbWVudCBpcyBkcmFnZ2VkLCBpdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggYVxuICAgICAgICAgICAgLy8gcGxhY2Vob2xkZXIuIElmIHRoZSBlbGVtZW50IHdhcyBhbHNvIGEgZHJvcCB0YXJnZXQsIHdlIHdvdWxkIHRoaW5rIHRoYXQgd2UgYXJlIHN0aWxsXG4gICAgICAgICAgICAvLyBob3ZlcmluZyB0aGUgZWxlbWVudC5cbiAgICAgICAgICAgIG9ic2VydmVSZW1vdmVkRnJvbVBhcmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5ub2Rlc0RyYWdEcm9wLm9uTW91c2VMZWF2ZSh0aGlzKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVnaXN0ZXJBY3RpdmVEcm9wVGFyZ2V0KCkge1xuICAgICAgICB0aGlzLmFjdGl2ZURyb3BUYXJnZXRTdWJqZWN0XG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZHJvcFRhcmdldFN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FuRHJvcCA9IGRyb3BUYXJnZXRTdGF0ZT8uY2FuRHJvcDtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc0xpc3QgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZShBQ1RJVkVfRFJPUF9UQVJHRVRfQUNDRVBUX0NMQVNTLCBBQ1RJVkVfRFJPUF9UQVJHRVRfREVOWV9DTEFTUyk7XG4gICAgICAgICAgICAgICAgaWYgKGNhbkRyb3A/LmFjY2VwdCkge1xuICAgICAgICAgICAgICAgICAgICBjbGFzc0xpc3QuYWRkKEFDVElWRV9EUk9QX1RBUkdFVF9BQ0NFUFRfQ0xBU1MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRHJvcD8uZGVueUV4cGxpY2l0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5hZGQoQUNUSVZFX0RST1BfVEFSR0VUX0RFTllfQ0xBU1MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gb2JzZXJ2ZVJlbW92ZWRGcm9tUGFyZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIGlmIChbLi4ubXV0YXRpb24ucmVtb3ZlZE5vZGVzXS5pbmNsdWRlcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBXYWl0IGZvciBgZWxlbWVudGAgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIERPTS5cbiAgICAgICAgbGV0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRpbWVvdXQgPSBudWxsO1xuICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LnBhcmVudE5vZGUsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiBmYWxzZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAvLyBJbiBjYXNlIHRoZSBlbGVtZW50IHdhcyBkZXN0cm95ZWQgYmVmb3JlIHdlIGF0dGFjaGVkIHRoZSBtdXRhdGlvbiBvYnNlcnZlciwgd2UgY2FuY2VsXG4gICAgICAgICAgICAvLyB0aGUgb2JzZXJ2YWJsZSByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uIGFuZCBkb24ndCBhdHRhY2ggdGhlIG11dGF0aW9uIG9ic2VydmVyLlxuICAgICAgICAgICAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBJbnZlc3RpZ2F0ZSBlbGVtZW50cyB0aGF0IHRyaWdnZXIgdGhlIGZvbGxvd2luZyB3YXJuaW5nLlxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgIC8vICAgICAnUG9zc2libGUgcGVyZm9ybWFuY2UgbGVhazogdGhlIGVsZW1lbnQgZ290IGRlc3Ryb3llZCBiZWZvcmUgaXQgY291bGQgYmUgYWRkZWQgdG8gdGhlIERPTS4nLFxuICAgICAgICAgICAgICAgIC8vICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgIC8vICk7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICB9O1xuICAgIH0pO1xufVxuIl19
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class FocusStateDirective {
|
|
4
|
-
constructor() {
|
|
5
|
-
/** Either the element or one of its descendants has focus. */
|
|
6
|
-
this.hasFocus = false;
|
|
7
|
-
/** The element is being hovered with the cursor. */
|
|
8
|
-
this.hovering = false;
|
|
9
|
-
}
|
|
10
|
-
onFocusIn() {
|
|
11
|
-
this.hasFocus = true;
|
|
12
|
-
}
|
|
13
|
-
onFocusOut() {
|
|
14
|
-
this.hasFocus = false;
|
|
15
|
-
}
|
|
16
|
-
onMouseOver() {
|
|
17
|
-
this.hovering = true;
|
|
18
|
-
}
|
|
19
|
-
onMouseOut() {
|
|
20
|
-
this.hovering = false;
|
|
21
|
-
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FocusStateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.12", type: FocusStateDirective, selector: "[esFocusState]", host: { listeners: { "focusin": "onFocusIn()", "focusout": "onFocusOut()", "mouseenter": "onMouseOver()", "mouseleave": "onMouseOut()" } }, exportAs: ["esFocusState"], ngImport: i0 }); }
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: FocusStateDirective, decorators: [{
|
|
26
|
-
type: Directive,
|
|
27
|
-
args: [{
|
|
28
|
-
selector: '[esFocusState]',
|
|
29
|
-
exportAs: 'esFocusState',
|
|
30
|
-
}]
|
|
31
|
-
}], ctorParameters: () => [], propDecorators: { onFocusIn: [{
|
|
32
|
-
type: HostListener,
|
|
33
|
-
args: ['focusin']
|
|
34
|
-
}], onFocusOut: [{
|
|
35
|
-
type: HostListener,
|
|
36
|
-
args: ['focusout']
|
|
37
|
-
}], onMouseOver: [{
|
|
38
|
-
type: HostListener,
|
|
39
|
-
args: ['mouseenter']
|
|
40
|
-
}], onMouseOut: [{
|
|
41
|
-
type: HostListener,
|
|
42
|
-
args: ['mouseleave']
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtc3RhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLXN0YXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNeEQsTUFBTSxPQUFPLG1CQUFtQjtJQU01QjtRQUxBLDhEQUE4RDtRQUM5RCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG9EQUFvRDtRQUNwRCxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBRUYsQ0FBQztJQUdoQixTQUFTO1FBQ0wsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDekIsQ0FBQztJQUdELFVBQVU7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBR0QsV0FBVztRQUNQLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFHRCxVQUFVO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQzsrR0ExQlEsbUJBQW1CO21HQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsUUFBUSxFQUFFLGNBQWM7aUJBQzNCO3dEQVVHLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTO2dCQU12QixVQUFVO3NCQURULFlBQVk7dUJBQUMsVUFBVTtnQkFNeEIsV0FBVztzQkFEVixZQUFZO3VCQUFDLFlBQVk7Z0JBTTFCLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZXNGb2N1c1N0YXRlXScsXG4gICAgZXhwb3J0QXM6ICdlc0ZvY3VzU3RhdGUnLFxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c1N0YXRlRGlyZWN0aXZlIHtcbiAgICAvKiogRWl0aGVyIHRoZSBlbGVtZW50IG9yIG9uZSBvZiBpdHMgZGVzY2VuZGFudHMgaGFzIGZvY3VzLiAqL1xuICAgIGhhc0ZvY3VzID0gZmFsc2U7XG4gICAgLyoqIFRoZSBlbGVtZW50IGlzIGJlaW5nIGhvdmVyZWQgd2l0aCB0aGUgY3Vyc29yLiAqL1xuICAgIGhvdmVyaW5nID0gZmFsc2U7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJylcbiAgICBvbkZvY3VzSW4oKSB7XG4gICAgICAgIHRoaXMuaGFzRm9jdXMgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgICBvbkZvY3VzT3V0KCkge1xuICAgICAgICB0aGlzLmhhc0ZvY3VzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpXG4gICAgb25Nb3VzZU92ZXIoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICAgIG9uTW91c2VPdXQoKSB7XG4gICAgICAgIHRoaXMuaG92ZXJpbmcgPSBmYWxzZTtcbiAgICB9XG59XG4iXX0=
|