@clr/angular 15.0.0-beta.1 → 15.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/clarity.api.md +158 -489
- package/clr-angular.module.d.ts +12 -15
- package/data/datagrid/datagrid-column.d.ts +1 -22
- package/data/datagrid/datagrid-pagination.d.ts +2 -2
- package/data/datagrid/datagrid.module.d.ts +13 -13
- package/data/stack-view/index.d.ts +0 -2
- package/data/stack-view/stack-block.d.ts +1 -17
- package/data/stack-view/stack-view.d.ts +1 -11
- package/data/stack-view/stack-view.module.d.ts +5 -7
- package/data/tree-view/tree-node.d.ts +6 -6
- package/esm2020/accordion/accordion-panel.mjs +3 -3
- package/esm2020/accordion/stepper/stepper-panel.mjs +3 -3
- package/esm2020/clr-angular.module.mjs +1 -13
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +10 -10
- package/esm2020/data/datagrid/datagrid-column-separator.mjs +16 -15
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +18 -20
- package/esm2020/data/datagrid/datagrid-column.mjs +2 -48
- package/esm2020/data/datagrid/datagrid-detail.mjs +8 -6
- package/esm2020/data/datagrid/datagrid-filter.mjs +10 -10
- package/esm2020/data/datagrid/datagrid-pagination.mjs +10 -5
- package/esm2020/data/datagrid/datagrid-row-detail.mjs +7 -8
- package/esm2020/data/datagrid/datagrid-row.mjs +3 -3
- package/esm2020/data/datagrid/datagrid.module.mjs +9 -9
- package/esm2020/data/stack-view/index.mjs +1 -3
- package/esm2020/data/stack-view/stack-block.mjs +2 -8
- package/esm2020/data/stack-view/stack-header.mjs +2 -23
- package/esm2020/data/stack-view/stack-view.mjs +4 -28
- package/esm2020/data/stack-view/stack-view.module.mjs +3 -23
- package/esm2020/data/tree-view/tree-node.mjs +30 -26
- package/esm2020/forms/datepicker/date-container.mjs +9 -9
- package/esm2020/forms/datepicker/datepicker.module.mjs +5 -5
- package/esm2020/layout/nav/nav-level.mjs +23 -10
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -7
- package/esm2020/modal/modal.mjs +8 -19
- package/esm2020/modal/modal.module.mjs +5 -5
- package/esm2020/popover/dropdown/dropdown-item.mjs +30 -33
- package/esm2020/utils/cdk/cdk-drag.module.mjs +37 -0
- package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +37 -0
- package/esm2020/utils/i18n/common-strings.default.mjs +2 -3
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/utils/index.mjs +1 -5
- package/esm2020/wizard/wizard.mjs +6 -30
- package/fesm2015/clr-angular.mjs +259 -1990
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +306 -2033
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/datepicker/datepicker.module.d.ts +6 -6
- package/layout/nav/nav-level.d.ts +12 -4
- package/layout/vertical-nav/vertical-nav-group.d.ts +1 -2
- package/modal/modal.d.ts +1 -4
- package/modal/modal.module.d.ts +3 -3
- package/package.json +2 -1
- package/popover/dropdown/dropdown-item.d.ts +7 -13
- package/src/utils/popover/README.md +1 -1
- package/utils/cdk/cdk-drag.module.d.ts +17 -0
- package/utils/cdk/cdk-trap-focus.module.d.ts +17 -0
- package/utils/i18n/common-strings.interface.d.ts +0 -17
- package/utils/index.d.ts +0 -4
- package/wizard/wizard.d.ts +2 -13
- package/data/stack-view/stack-control.d.ts +0 -16
- package/data/stack-view/stack-input.d.ts +0 -10
- package/data/stack-view/stack-select.d.ts +0 -9
- package/esm2020/data/stack-view/stack-control.mjs +0 -34
- package/esm2020/data/stack-view/stack-input.mjs +0 -42
- package/esm2020/data/stack-view/stack-select.mjs +0 -48
- package/esm2020/utils/a11y/aria-live.service.mjs +0 -163
- package/esm2020/utils/a11y/index.mjs +0 -7
- package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +0 -42
- package/esm2020/utils/drag-and-drop/drag-event.mjs +0 -16
- package/esm2020/utils/drag-and-drop/drag-handle.mjs +0 -35
- package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +0 -135
- package/esm2020/utils/drag-and-drop/draggable-ghost.mjs +0 -124
- package/esm2020/utils/drag-and-drop/droppable/droppable.mjs +0 -222
- package/esm2020/utils/drag-and-drop/if-dragged.mjs +0 -47
- package/esm2020/utils/drag-and-drop/index.mjs +0 -14
- package/esm2020/utils/drag-and-drop/interfaces/drag-event.interface.mjs +0 -15
- package/esm2020/utils/drag-and-drop/interfaces/drop-tolerance.interface.mjs +0 -7
- package/esm2020/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.mjs +0 -54
- package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +0 -179
- package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +0 -60
- package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +0 -38
- package/esm2020/utils/drag-and-drop/providers/global-drag-mode.service.mjs +0 -26
- package/esm2020/utils/focus-trap/focus-trap-config.interface.mjs +0 -7
- package/esm2020/utils/focus-trap/focus-trap-tracker.service.mjs +0 -32
- package/esm2020/utils/focus-trap/focus-trap.directive.mjs +0 -158
- package/esm2020/utils/focus-trap/focus-trap.mjs +0 -141
- package/esm2020/utils/focus-trap/focus-trap.module.mjs +0 -24
- package/esm2020/utils/focus-trap/index.mjs +0 -9
- package/esm2020/utils/for-type-ahead/for-type-ahead.mjs +0 -54
- package/esm2020/utils/for-type-ahead/for-type-ahead.module.mjs +0 -23
- package/esm2020/utils/for-type-ahead/for-type-ahead.service.mjs +0 -29
- package/esm2020/utils/for-type-ahead/index.mjs +0 -8
- package/utils/a11y/aria-live.service.d.ts +0 -93
- package/utils/a11y/index.d.ts +0 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +0 -14
- package/utils/drag-and-drop/drag-event.d.ts +0 -8
- package/utils/drag-and-drop/drag-handle.d.ts +0 -11
- package/utils/drag-and-drop/draggable/draggable.d.ts +0 -36
- package/utils/drag-and-drop/draggable-ghost.d.ts +0 -30
- package/utils/drag-and-drop/droppable/droppable.d.ts +0 -42
- package/utils/drag-and-drop/if-dragged.d.ts +0 -13
- package/utils/drag-and-drop/index.d.ts +0 -8
- package/utils/drag-and-drop/interfaces/drag-event.interface.d.ts +0 -22
- package/utils/drag-and-drop/interfaces/drop-tolerance.interface.d.ts +0 -6
- package/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.d.ts +0 -16
- package/utils/drag-and-drop/providers/drag-event-listener.service.d.ts +0 -39
- package/utils/drag-and-drop/providers/drag-handle-registrar.service.d.ts +0 -18
- package/utils/drag-and-drop/providers/draggable-snapshot.service.d.ts +0 -16
- package/utils/drag-and-drop/providers/global-drag-mode.service.d.ts +0 -10
- package/utils/focus-trap/focus-trap-config.interface.d.ts +0 -3
- package/utils/focus-trap/focus-trap-tracker.service.d.ts +0 -12
- package/utils/focus-trap/focus-trap.d.ts +0 -29
- package/utils/focus-trap/focus-trap.directive.d.ts +0 -38
- package/utils/focus-trap/focus-trap.module.d.ts +0 -10
- package/utils/focus-trap/index.d.ts +0 -3
- package/utils/for-type-ahead/for-type-ahead.d.ts +0 -15
- package/utils/for-type-ahead/for-type-ahead.module.d.ts +0 -8
- package/utils/for-type-ahead/for-type-ahead.service.d.ts +0 -11
- package/utils/for-type-ahead/index.d.ts +0 -2
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
|
|
7
|
-
import { Injectable } from '@angular/core';
|
|
8
|
-
import { createId, FocusTrapTrackerService, isFocusable, isHTMLElement } from '@cds/core/internal';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
|
|
11
|
-
const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
|
|
12
|
-
const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
|
|
13
|
-
if (focusTrapIsCurrent && elementToFocusIsOutsideFocusTrap) {
|
|
14
|
-
elementToRefocus = elementToRefocus || focusTrapElement;
|
|
15
|
-
elementToRefocus.focus();
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
focusedElement.focus();
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
export function elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement) {
|
|
22
|
-
if (focusedElement === focusTrapElement.topReboundElement ||
|
|
23
|
-
focusedElement === focusTrapElement.bottomReboundElement) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
const elementIsInFocusTrapLightDom = focusTrapElement.contains(focusedElement);
|
|
27
|
-
if (elementIsInFocusTrapLightDom) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
if (focusTrapElement !== null && focusTrapElement.contains(focusedElement)) {
|
|
31
|
-
return false;
|
|
32
|
-
}
|
|
33
|
-
return true;
|
|
34
|
-
}
|
|
35
|
-
export function createFocusTrapReboundElement(document) {
|
|
36
|
-
const offScreenSpan = document.createElement('span');
|
|
37
|
-
offScreenSpan.setAttribute('tabindex', '0');
|
|
38
|
-
offScreenSpan.classList.add('offscreen-focus-rebounder');
|
|
39
|
-
return offScreenSpan;
|
|
40
|
-
}
|
|
41
|
-
export function addReboundElementsToFocusTrapElement(document, focusTrapElement) {
|
|
42
|
-
if (focusTrapElement && !focusTrapElement.topReboundElement && !focusTrapElement.bottomReboundElement) {
|
|
43
|
-
focusTrapElement.topReboundElement = createFocusTrapReboundElement(document);
|
|
44
|
-
focusTrapElement.bottomReboundElement = createFocusTrapReboundElement(document);
|
|
45
|
-
const parent = focusTrapElement.parentElement;
|
|
46
|
-
const sibling = focusTrapElement.nextSibling;
|
|
47
|
-
if (parent) {
|
|
48
|
-
parent.insertBefore(focusTrapElement.topReboundElement, focusTrapElement);
|
|
49
|
-
if (sibling) {
|
|
50
|
-
parent.insertBefore(focusTrapElement.bottomReboundElement, sibling);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
parent.appendChild(focusTrapElement.bottomReboundElement);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export function removeReboundElementsFromFocusTrapElement(focusTrapElement) {
|
|
59
|
-
if (focusTrapElement) {
|
|
60
|
-
const parent = focusTrapElement.parentElement;
|
|
61
|
-
if (parent) {
|
|
62
|
-
const topRebound = focusTrapElement.topReboundElement;
|
|
63
|
-
const bottomRebound = focusTrapElement.bottomReboundElement;
|
|
64
|
-
if (topRebound) {
|
|
65
|
-
parent.removeChild(topRebound);
|
|
66
|
-
}
|
|
67
|
-
if (bottomRebound) {
|
|
68
|
-
parent.removeChild(bottomRebound);
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// These are here to to make sure that we completely delete all traces of the removed DOM objects.
|
|
72
|
-
delete focusTrapElement.topReboundElement;
|
|
73
|
-
delete focusTrapElement.bottomReboundElement;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
// this helper exists to enable the focus trap class to handle vanilla html elements
|
|
77
|
-
// it's primary concern is to keep TS happy.
|
|
78
|
-
export function castHtmlElementToFocusTrapElement(el) {
|
|
79
|
-
return el;
|
|
80
|
-
}
|
|
81
|
-
export class FocusTrap {
|
|
82
|
-
constructor(renderer, injector, platformId, hostElement) {
|
|
83
|
-
this.renderer = renderer;
|
|
84
|
-
this.active = false;
|
|
85
|
-
if (isPlatformBrowser(platformId)) {
|
|
86
|
-
this._document = injector.get(DOCUMENT);
|
|
87
|
-
}
|
|
88
|
-
hostElement = castHtmlElementToFocusTrapElement(hostElement);
|
|
89
|
-
if (!hostElement.focusTrapId) {
|
|
90
|
-
hostElement.focusTrapId = createId();
|
|
91
|
-
}
|
|
92
|
-
this.focusTrapElement = hostElement;
|
|
93
|
-
}
|
|
94
|
-
enableFocusTrap() {
|
|
95
|
-
const fte = this.focusTrapElement;
|
|
96
|
-
const firstFocusElement = fte.querySelector('[cds-first-focus]');
|
|
97
|
-
const activeEl = this._document.activeElement;
|
|
98
|
-
if (FocusTrapTrackerService.getCurrent() === fte) {
|
|
99
|
-
throw new Error('Focus trap is already enabled for this instance.');
|
|
100
|
-
}
|
|
101
|
-
this.firstFocusElement = firstFocusElement || this.focusTrapElement;
|
|
102
|
-
addReboundElementsToFocusTrapElement(this._document, fte);
|
|
103
|
-
if (!isFocusable(fte)) {
|
|
104
|
-
fte.setAttribute('tabindex', '-1');
|
|
105
|
-
}
|
|
106
|
-
if (activeEl && isHTMLElement(activeEl)) {
|
|
107
|
-
this.previousFocus = activeEl;
|
|
108
|
-
}
|
|
109
|
-
FocusTrapTrackerService.setCurrent(fte);
|
|
110
|
-
// setTimeout here is required for Safari which may try to set focus on
|
|
111
|
-
// element before it is visible...
|
|
112
|
-
const focusTimer = setTimeout(() => {
|
|
113
|
-
this.firstFocusElement.focus();
|
|
114
|
-
clearTimeout(focusTimer);
|
|
115
|
-
}, 10);
|
|
116
|
-
this.onFocusInEvent = this.onFocusIn.bind(this);
|
|
117
|
-
this.unlisten = this.renderer.listen(this._document, 'focusin', this.onFocusInEvent);
|
|
118
|
-
this.active = true;
|
|
119
|
-
}
|
|
120
|
-
removeFocusTrap() {
|
|
121
|
-
if (this.unlisten) {
|
|
122
|
-
this.unlisten();
|
|
123
|
-
}
|
|
124
|
-
removeReboundElementsFromFocusTrapElement(this.focusTrapElement);
|
|
125
|
-
this.renderer.removeAttribute(this.focusTrapElement, 'tabindex');
|
|
126
|
-
FocusTrapTrackerService.activatePreviousCurrent();
|
|
127
|
-
this.active = false;
|
|
128
|
-
if (this.previousFocus) {
|
|
129
|
-
this.previousFocus.focus();
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
onFocusIn(event) {
|
|
133
|
-
refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
137
|
-
FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap });
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap, decorators: [{
|
|
139
|
-
type: Injectable
|
|
140
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2ZvY3VzLXRyYXAvZm9jdXMtdHJhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQVFuRyxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQyxFQUNsQyxnQkFBOEI7SUFFOUIsTUFBTSxrQkFBa0IsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQztJQUNyRixNQUFNLGdDQUFnQyxHQUFHLGdDQUFnQyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVHLElBQUksa0JBQWtCLElBQUksZ0NBQWdDLEVBQUU7UUFDMUQsZ0JBQWdCLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUM7UUFDeEQsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7S0FDMUI7U0FBTTtRQUNMLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztLQUN4QjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLGNBQTJCLEVBQzNCLGdCQUFrQztJQUVsQyxJQUNFLGNBQWMsS0FBSyxnQkFBZ0IsQ0FBQyxpQkFBaUI7UUFDckQsY0FBYyxLQUFLLGdCQUFnQixDQUFDLG9CQUFvQixFQUN4RDtRQUNBLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxNQUFNLDRCQUE0QixHQUFHLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUUvRSxJQUFJLDRCQUE0QixFQUFFO1FBQ2hDLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFFRCxJQUFJLGdCQUFnQixLQUFLLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDMUUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxRQUFrQjtJQUM5RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JELGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDekQsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxvQ0FBb0MsQ0FBQyxRQUFrQixFQUFFLGdCQUFrQztJQUN6RyxJQUFJLGdCQUFnQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsRUFBRTtRQUNyRyxnQkFBZ0IsQ0FBQyxpQkFBaUIsR0FBRyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3RSxnQkFBZ0IsQ0FBQyxvQkFBb0IsR0FBRyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVoRixNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7UUFDOUMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO1FBRTdDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzFFLElBQUksT0FBTyxFQUFFO2dCQUNYLE1BQU0sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDckU7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO2FBQzNEO1NBQ0Y7S0FDRjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUseUNBQXlDLENBQUMsZ0JBQWtDO0lBQzFGLElBQUksZ0JBQWdCLEVBQUU7UUFDcEIsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksTUFBTSxFQUFFO1lBQ1YsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUM7WUFDdEQsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsSUFBSSxVQUFVLEVBQUU7Z0JBQ2QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNoQztZQUNELElBQUksYUFBYSxFQUFFO2dCQUNqQixNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7UUFDRCxrR0FBa0c7UUFDbEcsT0FBTyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQztRQUMxQyxPQUFPLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO0tBQzlDO0FBQ0gsQ0FBQztBQUVELG9GQUFvRjtBQUNwRiw0Q0FBNEM7QUFDNUMsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEVBQWU7SUFDL0QsT0FBTyxFQUFzQixDQUFDO0FBQ2hDLENBQUM7QUFHRCxNQUFNLE9BQU8sU0FBUztJQVlwQixZQUFzQixRQUFtQixFQUFFLFFBQWtCLEVBQUUsVUFBZSxFQUFFLFdBQTZCO1FBQXZGLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGekMsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdiLElBQUksaUJBQWlCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsV0FBVyxHQUFHLGlDQUFpQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTdELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQzVCLFdBQVcsQ0FBQyxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7U0FDdEM7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQ2xDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1FBRTlDLElBQUksdUJBQXVCLENBQUMsVUFBVSxFQUFFLEtBQUssR0FBRyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztTQUNyRTtRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBSSxpQkFBaUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFFckYsb0NBQW9DLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUUxRCxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3BDO1FBRUQsSUFBSSxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsUUFBdUIsQ0FBQztTQUM5QztRQUVELHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV4Qyx1RUFBdUU7UUFDdkUsa0NBQWtDO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBQy9CLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3JGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtRQUVELHlDQUF5QyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNqRSx1QkFBdUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFpQjtRQUNqQyxnQ0FBZ0MsQ0FDOUIsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBZ0IsRUFDdEMsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQ3ZCLENBQUM7SUFDSixDQUFDOztzR0FqRlUsU0FBUzswR0FBVCxTQUFTOzJGQUFULFNBQVM7a0JBRHJCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjcmVhdGVJZCwgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UsIGlzRm9jdXNhYmxlLCBpc0hUTUxFbGVtZW50IH0gZnJvbSAnQGNkcy9jb3JlL2ludGVybmFsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c1RyYXBFbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge1xuICB0b3BSZWJvdW5kRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIGJvdHRvbVJlYm91bmRFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgZm9jdXNUcmFwSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZm9jdXNJZk91dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnQsXG4gIGVsZW1lbnRUb1JlZm9jdXM/OiBIVE1MRWxlbWVudFxuKSB7XG4gIGNvbnN0IGZvY3VzVHJhcElzQ3VycmVudCA9IEZvY3VzVHJhcFRyYWNrZXJTZXJ2aWNlLmdldEN1cnJlbnQoKSA9PT0gZm9jdXNUcmFwRWxlbWVudDtcbiAgY29uc3QgZWxlbWVudFRvRm9jdXNJc091dHNpZGVGb2N1c1RyYXAgPSBlbGVtZW50SXNPdXRzaWRlRm9jdXNUcmFwRWxlbWVudChmb2N1c2VkRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG5cbiAgaWYgKGZvY3VzVHJhcElzQ3VycmVudCAmJiBlbGVtZW50VG9Gb2N1c0lzT3V0c2lkZUZvY3VzVHJhcCkge1xuICAgIGVsZW1lbnRUb1JlZm9jdXMgPSBlbGVtZW50VG9SZWZvY3VzIHx8IGZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgZWxlbWVudFRvUmVmb2N1cy5mb2N1cygpO1xuICB9IGVsc2Uge1xuICAgIGZvY3VzZWRFbGVtZW50LmZvY3VzKCk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRJc091dHNpZGVGb2N1c1RyYXBFbGVtZW50KFxuICBmb2N1c2VkRWxlbWVudDogSFRNTEVsZW1lbnQsXG4gIGZvY3VzVHJhcEVsZW1lbnQ6IEZvY3VzVHJhcEVsZW1lbnRcbik6IGJvb2xlYW4ge1xuICBpZiAoXG4gICAgZm9jdXNlZEVsZW1lbnQgPT09IGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgfHxcbiAgICBmb2N1c2VkRWxlbWVudCA9PT0gZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudFxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IGVsZW1lbnRJc0luRm9jdXNUcmFwTGlnaHREb20gPSBmb2N1c1RyYXBFbGVtZW50LmNvbnRhaW5zKGZvY3VzZWRFbGVtZW50KTtcblxuICBpZiAoZWxlbWVudElzSW5Gb2N1c1RyYXBMaWdodERvbSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChmb2N1c1RyYXBFbGVtZW50ICE9PSBudWxsICYmIGZvY3VzVHJhcEVsZW1lbnQuY29udGFpbnMoZm9jdXNlZEVsZW1lbnQpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudDogRG9jdW1lbnQpIHtcbiAgY29uc3Qgb2ZmU2NyZWVuU3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgb2ZmU2NyZWVuU3Bhbi5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzAnKTtcbiAgb2ZmU2NyZWVuU3Bhbi5jbGFzc0xpc3QuYWRkKCdvZmZzY3JlZW4tZm9jdXMtcmVib3VuZGVyJyk7XG4gIHJldHVybiBvZmZTY3JlZW5TcGFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KGRvY3VtZW50OiBEb2N1bWVudCwgZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCAmJiAhZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCkge1xuICAgIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQgPSBjcmVhdGVGb2N1c1RyYXBSZWJvdW5kRWxlbWVudChkb2N1bWVudCk7XG4gICAgZm9jdXNUcmFwRWxlbWVudC5ib3R0b21SZWJvdW5kRWxlbWVudCA9IGNyZWF0ZUZvY3VzVHJhcFJlYm91bmRFbGVtZW50KGRvY3VtZW50KTtcblxuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcbiAgICBjb25zdCBzaWJsaW5nID0gZm9jdXNUcmFwRWxlbWVudC5uZXh0U2libGluZztcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIHBhcmVudC5pbnNlcnRCZWZvcmUoZm9jdXNUcmFwRWxlbWVudC50b3BSZWJvdW5kRWxlbWVudCwgZm9jdXNUcmFwRWxlbWVudCk7XG4gICAgICBpZiAoc2libGluZykge1xuICAgICAgICBwYXJlbnQuaW5zZXJ0QmVmb3JlKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQsIHNpYmxpbmcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50LmFwcGVuZENoaWxkKGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlUmVib3VuZEVsZW1lbnRzRnJvbUZvY3VzVHJhcEVsZW1lbnQoZm9jdXNUcmFwRWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICBpZiAoZm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzVHJhcEVsZW1lbnQucGFyZW50RWxlbWVudDtcblxuICAgIGlmIChwYXJlbnQpIHtcbiAgICAgIGNvbnN0IHRvcFJlYm91bmQgPSBmb2N1c1RyYXBFbGVtZW50LnRvcFJlYm91bmRFbGVtZW50O1xuICAgICAgY29uc3QgYm90dG9tUmVib3VuZCA9IGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gICAgICBpZiAodG9wUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQodG9wUmVib3VuZCk7XG4gICAgICB9XG4gICAgICBpZiAoYm90dG9tUmVib3VuZCkge1xuICAgICAgICBwYXJlbnQucmVtb3ZlQ2hpbGQoYm90dG9tUmVib3VuZCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIFRoZXNlIGFyZSBoZXJlIHRvIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGNvbXBsZXRlbHkgZGVsZXRlIGFsbCB0cmFjZXMgb2YgdGhlIHJlbW92ZWQgRE9NIG9iamVjdHMuXG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQudG9wUmVib3VuZEVsZW1lbnQ7XG4gICAgZGVsZXRlIGZvY3VzVHJhcEVsZW1lbnQuYm90dG9tUmVib3VuZEVsZW1lbnQ7XG4gIH1cbn1cblxuLy8gdGhpcyBoZWxwZXIgZXhpc3RzIHRvIGVuYWJsZSB0aGUgZm9jdXMgdHJhcCBjbGFzcyB0byBoYW5kbGUgdmFuaWxsYSBodG1sIGVsZW1lbnRzXG4vLyBpdCdzIHByaW1hcnkgY29uY2VybiBpcyB0byBrZWVwIFRTIGhhcHB5LlxuZXhwb3J0IGZ1bmN0aW9uIGNhc3RIdG1sRWxlbWVudFRvRm9jdXNUcmFwRWxlbWVudChlbDogSFRNTEVsZW1lbnQpOiBGb2N1c1RyYXBFbGVtZW50IHtcbiAgcmV0dXJuIGVsIGFzIEZvY3VzVHJhcEVsZW1lbnQ7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXAge1xuICBmb2N1c1RyYXBFbGVtZW50OiBGb2N1c1RyYXBFbGVtZW50O1xuICBwcml2YXRlIHByZXZpb3VzRm9jdXM6IEhUTUxFbGVtZW50O1xuICBwcml2YXRlIG9uRm9jdXNJbkV2ZW50OiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIHVubGlzdGVuOiAoKSA9PiB2b2lkO1xuXG4gIHByb3RlY3RlZCBfZG9jdW1lbnQ6IERvY3VtZW50O1xuXG4gIGZpcnN0Rm9jdXNFbGVtZW50OiBIVE1MRWxlbWVudCB8IEZvY3VzVHJhcEVsZW1lbnQ7XG5cbiAgYWN0aXZlID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjIsIGluamVjdG9yOiBJbmplY3RvciwgcGxhdGZvcm1JZDogYW55LCBob3N0RWxlbWVudDogRm9jdXNUcmFwRWxlbWVudCkge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3NlcihwbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5fZG9jdW1lbnQgPSBpbmplY3Rvci5nZXQoRE9DVU1FTlQpO1xuICAgIH1cblxuICAgIGhvc3RFbGVtZW50ID0gY2FzdEh0bWxFbGVtZW50VG9Gb2N1c1RyYXBFbGVtZW50KGhvc3RFbGVtZW50KTtcblxuICAgIGlmICghaG9zdEVsZW1lbnQuZm9jdXNUcmFwSWQpIHtcbiAgICAgIGhvc3RFbGVtZW50LmZvY3VzVHJhcElkID0gY3JlYXRlSWQoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzVHJhcEVsZW1lbnQgPSBob3N0RWxlbWVudDtcbiAgfVxuXG4gIGVuYWJsZUZvY3VzVHJhcCgpIHtcbiAgICBjb25zdCBmdGUgPSB0aGlzLmZvY3VzVHJhcEVsZW1lbnQ7XG4gICAgY29uc3QgZmlyc3RGb2N1c0VsZW1lbnQgPSBmdGUucXVlcnlTZWxlY3RvcignW2Nkcy1maXJzdC1mb2N1c10nKTtcbiAgICBjb25zdCBhY3RpdmVFbCA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuZ2V0Q3VycmVudCgpID09PSBmdGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRm9jdXMgdHJhcCBpcyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuJyk7XG4gICAgfVxuXG4gICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudCA9IChmaXJzdEZvY3VzRWxlbWVudCBhcyBIVE1MRWxlbWVudCkgfHwgdGhpcy5mb2N1c1RyYXBFbGVtZW50O1xuXG4gICAgYWRkUmVib3VuZEVsZW1lbnRzVG9Gb2N1c1RyYXBFbGVtZW50KHRoaXMuX2RvY3VtZW50LCBmdGUpO1xuXG4gICAgaWYgKCFpc0ZvY3VzYWJsZShmdGUpKSB7XG4gICAgICBmdGUuc2V0QXR0cmlidXRlKCd0YWJpbmRleCcsICctMScpO1xuICAgIH1cblxuICAgIGlmIChhY3RpdmVFbCAmJiBpc0hUTUxFbGVtZW50KGFjdGl2ZUVsKSkge1xuICAgICAgdGhpcy5wcmV2aW91c0ZvY3VzID0gYWN0aXZlRWwgYXMgSFRNTEVsZW1lbnQ7XG4gICAgfVxuXG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2Uuc2V0Q3VycmVudChmdGUpO1xuXG4gICAgLy8gc2V0VGltZW91dCBoZXJlIGlzIHJlcXVpcmVkIGZvciBTYWZhcmkgd2hpY2ggbWF5IHRyeSB0byBzZXQgZm9jdXMgb25cbiAgICAvLyBlbGVtZW50IGJlZm9yZSBpdCBpcyB2aXNpYmxlLi4uXG4gICAgY29uc3QgZm9jdXNUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5maXJzdEZvY3VzRWxlbWVudC5mb2N1cygpO1xuICAgICAgY2xlYXJUaW1lb3V0KGZvY3VzVGltZXIpO1xuICAgIH0sIDEwKTtcblxuICAgIHRoaXMub25Gb2N1c0luRXZlbnQgPSB0aGlzLm9uRm9jdXNJbi5iaW5kKHRoaXMpO1xuICAgIHRoaXMudW5saXN0ZW4gPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLl9kb2N1bWVudCwgJ2ZvY3VzaW4nLCB0aGlzLm9uRm9jdXNJbkV2ZW50KTtcbiAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gIH1cblxuICByZW1vdmVGb2N1c1RyYXAoKSB7XG4gICAgaWYgKHRoaXMudW5saXN0ZW4pIHtcbiAgICAgIHRoaXMudW5saXN0ZW4oKTtcbiAgICB9XG5cbiAgICByZW1vdmVSZWJvdW5kRWxlbWVudHNGcm9tRm9jdXNUcmFwRWxlbWVudCh0aGlzLmZvY3VzVHJhcEVsZW1lbnQpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZm9jdXNUcmFwRWxlbWVudCwgJ3RhYmluZGV4Jyk7XG4gICAgRm9jdXNUcmFwVHJhY2tlclNlcnZpY2UuYWN0aXZhdGVQcmV2aW91c0N1cnJlbnQoKTtcbiAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgIGlmICh0aGlzLnByZXZpb3VzRm9jdXMpIHtcbiAgICAgIHRoaXMucHJldmlvdXNGb2N1cy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Gb2N1c0luKGV2ZW50OiBGb2N1c0V2ZW50KSB7XG4gICAgcmVmb2N1c0lmT3V0c2lkZUZvY3VzVHJhcEVsZW1lbnQoXG4gICAgICBldmVudC5jb21wb3NlZFBhdGgoKVswXSBhcyBIVE1MRWxlbWVudCxcbiAgICAgIHRoaXMuZm9jdXNUcmFwRWxlbWVudCxcbiAgICAgIHRoaXMuZmlyc3RGb2N1c0VsZW1lbnRcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { FocusTrapDirective } from './focus-trap.directive';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export const FOCUS_TRAP_DIRECTIVES = [FocusTrapDirective];
|
|
11
|
-
export class ClrFocusTrapModule {
|
|
12
|
-
}
|
|
13
|
-
ClrFocusTrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrFocusTrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
14
|
-
ClrFocusTrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrFocusTrapModule, declarations: [FocusTrapDirective], imports: [CommonModule], exports: [FocusTrapDirective] });
|
|
15
|
-
ClrFocusTrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrFocusTrapModule, imports: [CommonModule] });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrFocusTrapModule, decorators: [{
|
|
17
|
-
type: NgModule,
|
|
18
|
-
args: [{
|
|
19
|
-
imports: [CommonModule],
|
|
20
|
-
declarations: [FOCUS_TRAP_DIRECTIVES],
|
|
21
|
-
exports: [FOCUS_TRAP_DIRECTIVES],
|
|
22
|
-
}]
|
|
23
|
-
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb2N1cy10cmFwL2ZvY3VzLXRyYXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFNUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQWdCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQU92RSxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsaUJBUG9CLGtCQUFrQixhQUd6RCxZQUFZLGFBSDJCLGtCQUFrQjtnSEFPeEQsa0JBQWtCLFlBSm5CLFlBQVk7MkZBSVgsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsWUFBWSxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ3JDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvY3VzVHJhcERpcmVjdGl2ZSB9IGZyb20gJy4vZm9jdXMtdHJhcC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgRk9DVVNfVFJBUF9ESVJFQ1RJVkVTOiBUeXBlPGFueT5bXSA9IFtGb2N1c1RyYXBEaXJlY3RpdmVdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbRk9DVVNfVFJBUF9ESVJFQ1RJVkVTXSxcbiAgZXhwb3J0czogW0ZPQ1VTX1RSQVBfRElSRUNUSVZFU10sXG59KVxuZXhwb3J0IGNsYXNzIENsckZvY3VzVHJhcE1vZHVsZSB7fVxuIl19
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
export { FocusTrapTracker as ÇlrFocusTrapTracker } from './focus-trap-tracker.service';
|
|
7
|
-
export { FocusTrapDirective as ÇlrFocusTrapDirective } from './focus-trap.directive';
|
|
8
|
-
export { ClrFocusTrapModule as ÇlrClrFocusTrapModule } from './focus-trap.module';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb2N1cy10cmFwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsZ0JBQWdCLElBQUksbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RixPQUFPLEVBQUUsa0JBQWtCLElBQUkscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLElBQUkscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuZXhwb3J0IHsgRm9jdXNUcmFwVHJhY2tlciBhcyDDh2xyRm9jdXNUcmFwVHJhY2tlciB9IGZyb20gJy4vZm9jdXMtdHJhcC10cmFja2VyLnNlcnZpY2UnO1xuZXhwb3J0IHsgRm9jdXNUcmFwRGlyZWN0aXZlIGFzIMOHbHJGb2N1c1RyYXBEaXJlY3RpdmUgfSBmcm9tICcuL2ZvY3VzLXRyYXAuZGlyZWN0aXZlJztcbmV4cG9ydCB7IENsckZvY3VzVHJhcE1vZHVsZSBhcyDDh2xyQ2xyRm9jdXNUcmFwTW9kdWxlIH0gZnJvbSAnLi9mb2N1cy10cmFwLm1vZHVsZSc7XG4iXX0=
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { Directive, Input } from '@angular/core';
|
|
7
|
-
import { ForTypeAheadProvider } from './for-type-ahead.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "./for-type-ahead.service";
|
|
10
|
-
// The purpose of this directive is to provide the text content of its host element
|
|
11
|
-
// or text content that's passed to its input.
|
|
12
|
-
// This directive must stay optional. So do not embed this directive in a component module by default.
|
|
13
|
-
// If users need to use this directive, they should import its module on their side.
|
|
14
|
-
export class ClrForTypeAhead {
|
|
15
|
-
constructor(el, forTypeAheadProvider) {
|
|
16
|
-
this.el = el;
|
|
17
|
-
this.forTypeAheadProvider = forTypeAheadProvider;
|
|
18
|
-
}
|
|
19
|
-
trimAndLowerCase(value) {
|
|
20
|
-
return value.toLocaleLowerCase().trim();
|
|
21
|
-
}
|
|
22
|
-
get content() {
|
|
23
|
-
return this._content;
|
|
24
|
-
}
|
|
25
|
-
set content(value) {
|
|
26
|
-
if (value) {
|
|
27
|
-
this._content = this.trimAndLowerCase(value);
|
|
28
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
32
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
if (!this._content) {
|
|
37
|
-
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
38
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
ClrForTypeAhead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAhead, deps: [{ token: i0.ElementRef }, { token: i1.ForTypeAheadProvider }], target: i0.ɵɵFactoryTarget.Directive });
|
|
43
|
-
ClrForTypeAhead.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrForTypeAhead, selector: "[clrForTypeAhead]", inputs: { content: ["clrForTypeAhead", "content"] }, providers: [ForTypeAheadProvider], ngImport: i0 });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAhead, decorators: [{
|
|
45
|
-
type: Directive,
|
|
46
|
-
args: [{
|
|
47
|
-
providers: [ForTypeAheadProvider],
|
|
48
|
-
selector: '[clrForTypeAhead]',
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.ForTypeAheadProvider }]; }, propDecorators: { content: [{
|
|
51
|
-
type: Input,
|
|
52
|
-
args: ['clrForTypeAhead']
|
|
53
|
-
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb3ItdHlwZS1haGVhZC9mb3ItdHlwZS1haGVhZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQUVoRSxtRkFBbUY7QUFDbkYsOENBQThDO0FBRTlDLHNHQUFzRztBQUN0RyxvRkFBb0Y7QUFNcEYsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFBb0IsRUFBYyxFQUFVLG9CQUEwQztRQUFsRSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtJQUFHLENBQUM7SUFFbEYsZ0JBQWdCLENBQUMsS0FBYTtRQUNwQyxPQUFPLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFJRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQThCLE9BQU8sQ0FBQyxLQUFhO1FBQ2pELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3ZEO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztTQUN2RDtJQUNILENBQUM7OzRHQTVCVSxlQUFlO2dHQUFmLGVBQWUsaUdBSGYsQ0FBQyxvQkFBb0IsQ0FBQzsyRkFHdEIsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDakMsUUFBUSxFQUFFLG1CQUFtQjtpQkFDOUI7b0lBYytCLE9BQU87c0JBQXBDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvclR5cGVBaGVhZFByb3ZpZGVyIH0gZnJvbSAnLi9mb3ItdHlwZS1haGVhZC5zZXJ2aWNlJztcblxuLy8gVGhlIHB1cnBvc2Ugb2YgdGhpcyBkaXJlY3RpdmUgaXMgdG8gcHJvdmlkZSB0aGUgdGV4dCBjb250ZW50IG9mIGl0cyBob3N0IGVsZW1lbnRcbi8vIG9yIHRleHQgY29udGVudCB0aGF0J3MgcGFzc2VkIHRvIGl0cyBpbnB1dC5cblxuLy8gVGhpcyBkaXJlY3RpdmUgbXVzdCBzdGF5IG9wdGlvbmFsLiBTbyBkbyBub3QgZW1iZWQgdGhpcyBkaXJlY3RpdmUgaW4gYSBjb21wb25lbnQgbW9kdWxlIGJ5IGRlZmF1bHQuXG4vLyBJZiB1c2VycyBuZWVkIHRvIHVzZSB0aGlzIGRpcmVjdGl2ZSwgdGhleSBzaG91bGQgaW1wb3J0IGl0cyBtb2R1bGUgb24gdGhlaXIgc2lkZS5cblxuQERpcmVjdGl2ZSh7XG4gIHByb3ZpZGVyczogW0ZvclR5cGVBaGVhZFByb3ZpZGVyXSxcbiAgc2VsZWN0b3I6ICdbY2xyRm9yVHlwZUFoZWFkXScsXG59KVxuZXhwb3J0IGNsYXNzIENsckZvclR5cGVBaGVhZCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgZm9yVHlwZUFoZWFkUHJvdmlkZXI6IEZvclR5cGVBaGVhZFByb3ZpZGVyKSB7fVxuXG4gIHByaXZhdGUgdHJpbUFuZExvd2VyQ2FzZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29udGVudDogc3RyaW5nO1xuXG4gIGdldCBjb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICB9XG5cbiAgQElucHV0KCdjbHJGb3JUeXBlQWhlYWQnKSBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50ID0gdGhpcy50cmltQW5kTG93ZXJDYXNlKHZhbHVlKTtcbiAgICAgIHRoaXMuZm9yVHlwZUFoZWFkUHJvdmlkZXIudGV4dENvbnRlbnQgPSB0aGlzLl9jb250ZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jb250ZW50ID0gdGhpcy50cmltQW5kTG93ZXJDYXNlKHRoaXMuZWwubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudCk7XG4gICAgICB0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyLnRleHRDb250ZW50ID0gdGhpcy5fY29udGVudDtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnQpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnQgPSB0aGlzLnRyaW1BbmRMb3dlckNhc2UodGhpcy5lbC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50KTtcbiAgICAgIHRoaXMuZm9yVHlwZUFoZWFkUHJvdmlkZXIudGV4dENvbnRlbnQgPSB0aGlzLl9jb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { ClrForTypeAhead } from './for-type-ahead';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class ClrForTypeAheadModule {
|
|
11
|
-
}
|
|
12
|
-
ClrForTypeAheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
13
|
-
ClrForTypeAheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, declarations: [ClrForTypeAhead], imports: [CommonModule], exports: [ClrForTypeAhead] });
|
|
14
|
-
ClrForTypeAheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, imports: [CommonModule] });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, decorators: [{
|
|
16
|
-
type: NgModule,
|
|
17
|
-
args: [{
|
|
18
|
-
imports: [CommonModule],
|
|
19
|
-
declarations: [ClrForTypeAhead],
|
|
20
|
-
exports: [ClrForTypeAhead],
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZm9yLXR5cGUtYWhlYWQvZm9yLXR5cGUtYWhlYWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBTW5ELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFIakIsZUFBZSxhQURwQixZQUFZLGFBRVosZUFBZTttSEFFZCxxQkFBcUIsWUFKdEIsWUFBWTsyRkFJWCxxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQy9CLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgVk13YXJlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDbHJGb3JUeXBlQWhlYWQgfSBmcm9tICcuL2Zvci10eXBlLWFoZWFkJztcbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtDbHJGb3JUeXBlQWhlYWRdLFxuICBleHBvcnRzOiBbQ2xyRm9yVHlwZUFoZWFkXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRm9yVHlwZUFoZWFkTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
import { Injectable } from '@angular/core';
|
|
7
|
-
import { Subject } from 'rxjs';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class ForTypeAheadProvider {
|
|
10
|
-
constructor() {
|
|
11
|
-
this._textContentChange = new Subject();
|
|
12
|
-
}
|
|
13
|
-
get textContentChange() {
|
|
14
|
-
return this._textContentChange.asObservable();
|
|
15
|
-
}
|
|
16
|
-
get textContent() {
|
|
17
|
-
return this._textContent;
|
|
18
|
-
}
|
|
19
|
-
set textContent(value) {
|
|
20
|
-
this._textContent = value;
|
|
21
|
-
this._textContentChange.next(value);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
ForTypeAheadProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
-
ForTypeAheadProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider });
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider, decorators: [{
|
|
27
|
-
type: Injectable
|
|
28
|
-
}] });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLXR5cGUtYWhlYWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3V0aWxzL2Zvci10eXBlLWFoZWFkL2Zvci10eXBlLWFoZWFkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLG9CQUFvQjtJQURqQztRQUVVLHVCQUFrQixHQUFvQixJQUFJLE9BQU8sRUFBVSxDQUFDO0tBZ0JyRTtJQWRDLElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFJRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEFoQlUsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRm9yVHlwZUFoZWFkUHJvdmlkZXIge1xuICBwcml2YXRlIF90ZXh0Q29udGVudENoYW5nZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIGdldCB0ZXh0Q29udGVudENoYW5nZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RleHRDb250ZW50OiBzdHJpbmc7XG5cbiAgZ2V0IHRleHRDb250ZW50KCkge1xuICAgIHJldHVybiB0aGlzLl90ZXh0Q29udGVudDtcbiAgfVxuXG4gIHNldCB0ZXh0Q29udGVudCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGV4dENvbnRlbnQgPSB2YWx1ZTtcbiAgICB0aGlzLl90ZXh0Q29udGVudENoYW5nZS5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
3
|
-
* This software is released under MIT license.
|
|
4
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
-
*/
|
|
6
|
-
export { ClrForTypeAhead } from './for-type-ahead';
|
|
7
|
-
export { ClrForTypeAheadModule } from './for-type-ahead.module';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9mb3ItdHlwZS1haGVhZC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5leHBvcnQgeyBDbHJGb3JUeXBlQWhlYWQgfSBmcm9tICcuL2Zvci10eXBlLWFoZWFkJztcbmV4cG9ydCB7IENsckZvclR5cGVBaGVhZE1vZHVsZSB9IGZyb20gJy4vZm9yLXR5cGUtYWhlYWQubW9kdWxlJztcbiJdfQ==
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { NgZone, OnDestroy } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare enum ClrAriaLivePoliteness {
|
|
4
|
-
off = "off",
|
|
5
|
-
polite = "polite",
|
|
6
|
-
assertive = "assertive"
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated
|
|
10
|
-
*
|
|
11
|
-
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
12
|
-
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
13
|
-
* if your project needs this functionality.
|
|
14
|
-
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
15
|
-
*
|
|
16
|
-
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
17
|
-
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
18
|
-
* and SR (Screen Reader) pick the change and announce it.
|
|
19
|
-
*
|
|
20
|
-
* ```typescript
|
|
21
|
-
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
22
|
-
*
|
|
23
|
-
* @Component({
|
|
24
|
-
* selector: 'clr-demo-component',
|
|
25
|
-
* providers: [ClrAriaLiveService],
|
|
26
|
-
* template: `
|
|
27
|
-
* <ng-content></ng-content>
|
|
28
|
-
* `,
|
|
29
|
-
* })
|
|
30
|
-
* export class DemoComponent {
|
|
31
|
-
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
32
|
-
*
|
|
33
|
-
* public actionThatWillTriggerChange() {
|
|
34
|
-
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
35
|
-
* }
|
|
36
|
-
* }
|
|
37
|
-
* ```
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
export declare class ClrAriaLiveService implements OnDestroy {
|
|
41
|
-
private ngZone;
|
|
42
|
-
private platformId;
|
|
43
|
-
private ariaLiveElement;
|
|
44
|
-
private document;
|
|
45
|
-
private previousTimeout;
|
|
46
|
-
constructor(ngZone: NgZone, _document: any, platformId: any);
|
|
47
|
-
private _id;
|
|
48
|
-
/**
|
|
49
|
-
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
50
|
-
* @return ID of the DOM Element as string.
|
|
51
|
-
*/
|
|
52
|
-
get id(): string;
|
|
53
|
-
/**
|
|
54
|
-
* Append text content inside the AriaLive Container. This method will check if the
|
|
55
|
-
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
56
|
-
*
|
|
57
|
-
* ```typescript
|
|
58
|
-
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
59
|
-
* // or
|
|
60
|
-
* this.ariaLiveService.announce('Message to announce to SR');
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* @remark
|
|
64
|
-
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
65
|
-
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
66
|
-
*
|
|
67
|
-
* @param message - This could be simple string or HTMLElement
|
|
68
|
-
* @param politeness - 'polite', 'assertive' or 'off'
|
|
69
|
-
*/
|
|
70
|
-
announce(message: string | HTMLElement, politeness?: ClrAriaLivePoliteness): void;
|
|
71
|
-
/**
|
|
72
|
-
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
73
|
-
* container from the document.
|
|
74
|
-
*/
|
|
75
|
-
ngOnDestroy(): void;
|
|
76
|
-
/**
|
|
77
|
-
* Create AriaLive DOM element as a last child of the document.
|
|
78
|
-
* After the element is created, we gonna apply Clarity class to hide it from
|
|
79
|
-
* the screen and set the `aria-live` politness.
|
|
80
|
-
*
|
|
81
|
-
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
82
|
-
*
|
|
83
|
-
* @remark
|
|
84
|
-
* Calling this method multiple times will create multiple DOM Elements, that
|
|
85
|
-
* won't be tracked and will be GC after the service is destroyed.
|
|
86
|
-
*
|
|
87
|
-
* @return AriaLive container as HTMLElement
|
|
88
|
-
*
|
|
89
|
-
*/
|
|
90
|
-
private createContainer;
|
|
91
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrAriaLiveService, never>;
|
|
92
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ClrAriaLiveService>;
|
|
93
|
-
}
|
package/utils/a11y/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './aria-live.service';
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Type } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./draggable/draggable";
|
|
4
|
-
import * as i2 from "./droppable/droppable";
|
|
5
|
-
import * as i3 from "./if-dragged";
|
|
6
|
-
import * as i4 from "./drag-handle";
|
|
7
|
-
import * as i5 from "./draggable-ghost";
|
|
8
|
-
import * as i6 from "@angular/common";
|
|
9
|
-
export declare const CLR_DRAG_AND_DROP_DIRECTIVES: Type<any>[];
|
|
10
|
-
export declare class ClrDragAndDropModule {
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDragAndDropModule, never>;
|
|
12
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ClrDragAndDropModule, [typeof i1.ClrDraggable, typeof i2.ClrDroppable, typeof i3.ClrIfDragged, typeof i4.ClrDragHandle, typeof i5.ClrDraggableGhost], [typeof i6.CommonModule], [typeof i1.ClrDraggable, typeof i2.ClrDroppable, typeof i3.ClrIfDragged, typeof i4.ClrDragHandle, typeof i5.ClrDraggableGhost]>;
|
|
13
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<ClrDragAndDropModule>;
|
|
14
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { DragEventInterface, DragPointPosition } from './interfaces/drag-event.interface';
|
|
2
|
-
export declare class ClrDragEvent<T> {
|
|
3
|
-
dragPosition: DragPointPosition;
|
|
4
|
-
group: string | string[];
|
|
5
|
-
dragDataTransfer: T;
|
|
6
|
-
dropPointPosition: DragPointPosition;
|
|
7
|
-
constructor(dragEvent: DragEventInterface<T>);
|
|
8
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnDestroy } from '@angular/core';
|
|
2
|
-
import { DragHandleRegistrarService } from './providers/drag-handle-registrar.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ClrDragHandle<T> implements OnDestroy {
|
|
5
|
-
private el;
|
|
6
|
-
private dragHandleRegistrar;
|
|
7
|
-
constructor(el: ElementRef, dragHandleRegistrar: DragHandleRegistrarService<T>);
|
|
8
|
-
ngOnDestroy(): void;
|
|
9
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDragHandle<any>, [null, { optional: true; }]>;
|
|
10
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDragHandle<any>, "[clrDragHandle]", never, {}, {}, never, never, false, never>;
|
|
11
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AfterContentInit, ComponentFactoryResolver, ElementRef, EventEmitter, Injector, OnDestroy, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { ClrDragEvent } from '../drag-event';
|
|
3
|
-
import { ClrIfDragged } from '../if-dragged';
|
|
4
|
-
import { DragEventListenerService } from '../providers/drag-event-listener.service';
|
|
5
|
-
import { DragHandleRegistrarService } from '../providers/drag-handle-registrar.service';
|
|
6
|
-
import { DraggableSnapshotService } from '../providers/draggable-snapshot.service';
|
|
7
|
-
import { GlobalDragModeService } from '../providers/global-drag-mode.service';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export declare class ClrDraggable<T> implements AfterContentInit, OnDestroy {
|
|
10
|
-
private el;
|
|
11
|
-
private dragEventListener;
|
|
12
|
-
private dragHandleRegistrar;
|
|
13
|
-
private viewContainerRef;
|
|
14
|
-
private cfr;
|
|
15
|
-
private injector;
|
|
16
|
-
private draggableSnapshot;
|
|
17
|
-
private globalDragMode;
|
|
18
|
-
private draggableEl;
|
|
19
|
-
private subscriptions;
|
|
20
|
-
private componentFactory;
|
|
21
|
-
dragOn: boolean;
|
|
22
|
-
constructor(el: ElementRef, dragEventListener: DragEventListenerService<T>, dragHandleRegistrar: DragHandleRegistrarService<T>, viewContainerRef: ViewContainerRef, cfr: ComponentFactoryResolver, injector: Injector, draggableSnapshot: DraggableSnapshotService<T>, globalDragMode: GlobalDragModeService);
|
|
23
|
-
customGhost: ClrIfDragged<T>;
|
|
24
|
-
set dataTransfer(value: T);
|
|
25
|
-
set group(value: string | string[]);
|
|
26
|
-
set dragStartDelay(value: number);
|
|
27
|
-
private createDefaultGhost;
|
|
28
|
-
private destroyDefaultGhost;
|
|
29
|
-
dragStartEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
30
|
-
dragMoveEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
31
|
-
dragEndEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
32
|
-
ngAfterContentInit(): void;
|
|
33
|
-
ngOnDestroy(): void;
|
|
34
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDraggable<any>, never>;
|
|
35
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDraggable<any>, "[clrDraggable]", never, { "dataTransfer": "clrDraggable"; "group": "clrGroup"; "dragStartDelay": "clrDragStartDelay"; }, { "dragStartEmitter": "clrDragStart"; "dragMoveEmitter": "clrDragMove"; "dragEndEmitter": "clrDragEnd"; }, ["customGhost"], never, false, never>;
|
|
36
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ElementRef, NgZone, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
|
-
import { DragEventListenerService } from './providers/drag-event-listener.service';
|
|
3
|
-
import { DraggableSnapshotService } from './providers/draggable-snapshot.service';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class ClrDraggableGhost<T> implements OnDestroy {
|
|
6
|
-
private el;
|
|
7
|
-
private dragEventListener;
|
|
8
|
-
private draggableSnapshot;
|
|
9
|
-
private renderer;
|
|
10
|
-
private ngZone;
|
|
11
|
-
private draggableGhostEl;
|
|
12
|
-
private subscriptions;
|
|
13
|
-
leaveAnimConfig: {
|
|
14
|
-
value: number;
|
|
15
|
-
params: {
|
|
16
|
-
top: string;
|
|
17
|
-
left: string;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
constructor(el: ElementRef, dragEventListener: DragEventListenerService<T>, draggableSnapshot: DraggableSnapshotService<T>, renderer: Renderer2, ngZone: NgZone);
|
|
21
|
-
private setDefaultGhostSize;
|
|
22
|
-
private animateToOnLeave;
|
|
23
|
-
private findTopLeftPosition;
|
|
24
|
-
private findDropPointPosition;
|
|
25
|
-
private setSizeStyle;
|
|
26
|
-
private setPositionStyle;
|
|
27
|
-
ngOnDestroy(): void;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDraggableGhost<any>, [null, { optional: true; }, { optional: true; }, null, null]>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ClrDraggableGhost<any>, "clr-draggable-ghost", never, {}, {}, never, ["*"], false, never>;
|
|
30
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnDestroy, OnInit, Renderer2 } from '@angular/core';
|
|
2
|
-
import { DomAdapter } from '../../dom-adapter/dom-adapter';
|
|
3
|
-
import { ClrDragEvent } from '../drag-event';
|
|
4
|
-
import { ClrDropToleranceInterface } from '../interfaces/drop-tolerance.interface';
|
|
5
|
-
import { DragAndDropEventBusService } from '../providers/drag-and-drop-event-bus.service';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class ClrDroppable<T> implements OnInit, OnDestroy {
|
|
8
|
-
private el;
|
|
9
|
-
private eventBus;
|
|
10
|
-
private domAdapter;
|
|
11
|
-
private renderer;
|
|
12
|
-
private dragStartSubscription;
|
|
13
|
-
private dragMoveSubscription;
|
|
14
|
-
private dragEndSubscription;
|
|
15
|
-
private droppableEl;
|
|
16
|
-
private clientRect;
|
|
17
|
-
constructor(el: ElementRef, eventBus: DragAndDropEventBusService<T>, domAdapter: DomAdapter, renderer: Renderer2);
|
|
18
|
-
isDraggableMatch: boolean;
|
|
19
|
-
private _isDraggableOver;
|
|
20
|
-
set isDraggableOver(value: boolean);
|
|
21
|
-
private _group;
|
|
22
|
-
set group(value: string | string[]);
|
|
23
|
-
private _dropTolerance;
|
|
24
|
-
private dropToleranceGenerator;
|
|
25
|
-
set dropTolerance(value: number | string | ClrDropToleranceInterface);
|
|
26
|
-
dragStartEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
27
|
-
dragMoveEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
28
|
-
dragEndEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
29
|
-
dragLeaveEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
30
|
-
dragEnterEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
31
|
-
dropEmitter: EventEmitter<ClrDragEvent<T>>;
|
|
32
|
-
private unsubscribeFrom;
|
|
33
|
-
private checkGroupMatch;
|
|
34
|
-
private isInDropArea;
|
|
35
|
-
private onDragStart;
|
|
36
|
-
private onDragMove;
|
|
37
|
-
private onDragEnd;
|
|
38
|
-
ngOnInit(): void;
|
|
39
|
-
ngOnDestroy(): void;
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrDroppable<any>, never>;
|
|
41
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrDroppable<any>, "[clrDroppable]", never, { "group": "clrGroup"; "dropTolerance": "clrDropTolerance"; }, { "dragStartEmitter": "clrDragStart"; "dragMoveEmitter": "clrDragMove"; "dragEndEmitter": "clrDragEnd"; "dragLeaveEmitter": "clrDragLeave"; "dragEnterEmitter": "clrDragEnter"; "dropEmitter": "clrDrop"; }, never, never, false, never>;
|
|
42
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { DragEventListenerService } from './providers/drag-event-listener.service';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ClrIfDragged<T> implements OnDestroy {
|
|
5
|
-
private template;
|
|
6
|
-
private container;
|
|
7
|
-
private dragEventListener;
|
|
8
|
-
private subscriptions;
|
|
9
|
-
constructor(template: TemplateRef<any>, container: ViewContainerRef, dragEventListener: DragEventListenerService<T>);
|
|
10
|
-
ngOnDestroy(): void;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ClrIfDragged<any>, [null, { optional: true; skipSelf: true; }, { optional: true; }]>;
|
|
12
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ClrIfDragged<any>, "[clrIfDragged]", never, {}, {}, never, never, false, never>;
|
|
13
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './draggable/draggable';
|
|
2
|
-
export * from './droppable/droppable';
|
|
3
|
-
export * from './if-dragged';
|
|
4
|
-
export * from './drag-handle';
|
|
5
|
-
export * from './draggable-ghost';
|
|
6
|
-
export * from './drag-event';
|
|
7
|
-
export * from './interfaces/drop-tolerance.interface';
|
|
8
|
-
export * from './drag-and-drop.module';
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export declare enum DragEventType {
|
|
2
|
-
DRAG_START = 0,
|
|
3
|
-
DRAG_MOVE = 1,
|
|
4
|
-
DRAG_END = 2,
|
|
5
|
-
DRAG_ENTER = 3,
|
|
6
|
-
DRAG_LEAVE = 4,
|
|
7
|
-
DROP = 5
|
|
8
|
-
}
|
|
9
|
-
export interface DragPointPosition {
|
|
10
|
-
pageX: number;
|
|
11
|
-
pageY: number;
|
|
12
|
-
moveX?: number;
|
|
13
|
-
moveY?: number;
|
|
14
|
-
}
|
|
15
|
-
export interface DragEventInterface<T> {
|
|
16
|
-
type: DragEventType;
|
|
17
|
-
group?: string | string[];
|
|
18
|
-
ghostElement?: any;
|
|
19
|
-
dragPosition: DragPointPosition;
|
|
20
|
-
dragDataTransfer?: T;
|
|
21
|
-
dropPointPosition?: DragPointPosition;
|
|
22
|
-
}
|