@libs-ui/components-drag-drop 0.2.304 → 0.2.306-10

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/README.md CHANGED
@@ -20,20 +20,25 @@ import { LibsUiComponentsDragContainerDirective, LibsUiDragItemDirective } from
20
20
  @Component({
21
21
  selector: 'app-drag-drop-demo',
22
22
  template: `
23
- <div LibsUiComponentsDragContainerDirective [items]="items">
24
- <div *ngFor="let item of items" LibsUiDragItemDirective [item]="item">
23
+ <div
24
+ LibsUiComponentsDragContainerDirective
25
+ [items]="items">
26
+ <div
27
+ *ngFor="let item of items"
28
+ LibsUiDragItemDirective
29
+ [item]="item">
25
30
  {{ item.name }}
26
31
  </div>
27
32
  </div>
28
33
  `,
29
34
  standalone: true,
30
- imports: [LibsUiComponentsDragContainerDirective, LibsUiDragItemDirective]
35
+ imports: [LibsUiComponentsDragContainerDirective, LibsUiDragItemDirective],
31
36
  })
32
37
  export class DragDropDemoComponent {
33
38
  items = [
34
39
  { id: 1, name: 'Item 1' },
35
40
  { id: 2, name: 'Item 2' },
36
- { id: 3, name: 'Item 3' }
41
+ { id: 3, name: 'Item 3' },
37
42
  ];
38
43
  }
39
44
  ```
@@ -47,12 +52,12 @@ export class DragDropDemoComponent {
47
52
  template: `
48
53
  <div class="container">
49
54
  <h3>Source</h3>
50
- <div LibsUiComponentsDragContainerDirective
51
- [items]="sourceItems"
55
+ <div LibsUiComponentsDragContainerDirective
56
+ [items]="sourceItems"
52
57
  [groupName]="'source'"
53
58
  [dropToGroupName]="['target']">
54
- <div *ngFor="let item of sourceItems"
55
- LibsUiDragItemDirective
59
+ <div *ngFor="let item of sourceItems"
60
+ LibsUiDragItemDirective
56
61
  [item]="item">
57
62
  {{ item.name }}
58
63
  </div>
@@ -61,12 +66,12 @@ export class DragDropDemoComponent {
61
66
 
62
67
  <div class="container">
63
68
  <h3>Target</h3>
64
- <div LibsUiComponentsDragContainerDirective
65
- [items]="targetItems"
69
+ <div LibsUiComponentsDragContainerDirective
70
+ [items]="targetItems"
66
71
  [groupName]="'target'"
67
72
  [dropToGroupName]="['source']">
68
- <div *ngFor="let item of targetItems"
69
- LibsUiDragItemDirective
73
+ <div *ngFor="let item of targetItems"
74
+ LibsUiDragItemDirective
70
75
  [item]="item">
71
76
  {{ item.name }}
72
77
  </div>
@@ -91,8 +96,8 @@ export class DragDropDemoComponent {
91
96
  template: `
92
97
  <virtual-scroller [items]="items">
93
98
  <div LibsUiComponentsDragContainerDirective [items]="items">
94
- <div *ngFor="let item of items"
95
- LibsUiDragItemDirective
99
+ <div *ngFor="let item of items"
100
+ LibsUiDragItemDirective
96
101
  [item]="item"
97
102
  [itemInContainerVirtualScroll]="true"
98
103
  [fieldId]="'id'">
@@ -110,11 +115,11 @@ export class DragDropDemoComponent {
110
115
  @Component({
111
116
  template: `
112
117
  <div class="boundary-container">
113
- <div LibsUiComponentsDragContainerDirective
118
+ <div LibsUiComponentsDragContainerDirective
114
119
  [items]="items"
115
120
  [dragBoundary]="true">
116
- <div *ngFor="let item of items"
117
- LibsUiDragItemDirective
121
+ <div *ngFor="let item of items"
122
+ LibsUiDragItemDirective
118
123
  [item]="item"
119
124
  [dragBoundary]="true">
120
125
  {{ item.name }}
@@ -137,24 +142,24 @@ export class DragDropDemoComponent {
137
142
 
138
143
  ### Container Directive
139
144
 
140
- | Property | Type | Default | Description |
141
- |----------|------|---------|-------------|
142
- | `mode` | 'move' \| 'copy' \| 'deepCopy' | 'move' | Drag operation mode |
143
- | `directionDrag` | 'horizontal' \| 'vertical' | undefined | Drag direction |
144
- | `groupName` | string | 'groupDragAndDropDefault' | Group identifier |
145
- | `dropToGroupName` | string[] | null | Allowed drop targets |
146
- | `disableDragContainer` | boolean | false | Disable drag functionality |
147
- | `placeholder` | boolean | true | Show placeholder during drag |
145
+ | Property | Type | Default | Description |
146
+ | ---------------------- | ------------------------------ | ------------------------- | ---------------------------- |
147
+ | `mode` | 'move' \| 'copy' \| 'deepCopy' | 'move' | Drag operation mode |
148
+ | `directionDrag` | 'horizontal' \| 'vertical' | undefined | Drag direction |
149
+ | `groupName` | string | 'groupDragAndDropDefault' | Group identifier |
150
+ | `dropToGroupName` | string[] | null | Allowed drop targets |
151
+ | `disableDragContainer` | boolean | false | Disable drag functionality |
152
+ | `placeholder` | boolean | true | Show placeholder during drag |
148
153
 
149
154
  ### Item Directive
150
155
 
151
- | Property | Type | Default | Description |
152
- |----------|------|---------|-------------|
153
- | `fieldId` | string | '' | Item identifier field |
154
- | `item` | any | undefined | Item data |
155
- | `itemInContainerVirtualScroll` | boolean | false | Enable virtual scroll support |
156
- | `dragBoundary` | boolean | false | Restrict drag to container boundaries |
157
- | `zIndex` | number | 1300 | Drag element z-index |
156
+ | Property | Type | Default | Description |
157
+ | ------------------------------ | ------- | --------- | ------------------------------------- |
158
+ | `fieldId` | string | '' | Item identifier field |
159
+ | `item` | any | undefined | Item data |
160
+ | `itemInContainerVirtualScroll` | boolean | false | Enable virtual scroll support |
161
+ | `dragBoundary` | boolean | false | Restrict drag to container boundaries |
162
+ | `zIndex` | number | 1300 | Drag element z-index |
158
163
 
159
164
  ## Events
160
165
 
@@ -287,7 +292,7 @@ interface IDragDropFunctionControlEvent {
287
292
  /* Dragging */
288
293
  .libs-ui-drag-drop-item-dragging {
289
294
  opacity: 0.8;
290
- box-shadow: 0 2px 5px rgba(0,0,0,0.2);
295
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
291
296
  }
292
297
 
293
298
  /* Placeholder */
@@ -302,11 +307,12 @@ interface IDragDropFunctionControlEvent {
302
307
  ```typescript
303
308
  @Component({
304
309
  template: `
305
- <div LibsUiComponentsDragContainerDirective
306
- [stylesOverride]="customStyles">
310
+ <div
311
+ LibsUiComponentsDragContainerDirective
312
+ [stylesOverride]="customStyles">
307
313
  <!-- Items -->
308
314
  </div>
309
- `
315
+ `,
310
316
  })
311
317
  export class CustomStyledComponent {
312
318
  customStyles = [
@@ -318,8 +324,8 @@ export class CustomStyledComponent {
318
324
  border-radius: 8px;
319
325
  padding: 15px;
320
326
  }
321
- `
322
- }
327
+ `,
328
+ },
323
329
  ];
324
330
  }
325
331
  ```
@@ -369,9 +375,9 @@ export class CustomStyledComponent {
369
375
  template: `
370
376
  <div class="list-container">
371
377
  <div LibsUiComponentsDragContainerDirective [items]="items">
372
- <div *ngFor="let item of items"
378
+ <div *ngFor="let item of items"
373
379
  class="list-item"
374
- LibsUiDragItemDirective
380
+ LibsUiDragItemDirective
375
381
  [item]="item">
376
382
  <span class="item-icon">📋</span>
377
383
  <span class="item-text">{{ item.name }}</span>
@@ -406,15 +412,15 @@ export class CustomStyledComponent {
406
412
  @Component({
407
413
  template: `
408
414
  <div class="kanban-board">
409
- <div *ngFor="let column of columns"
415
+ <div *ngFor="let column of columns"
410
416
  class="kanban-column"
411
- LibsUiComponentsDragContainerDirective
417
+ LibsUiComponentsDragContainerDirective
412
418
  [items]="column.items"
413
419
  [groupName]="column.id">
414
420
  <h3>{{ column.title }}</h3>
415
- <div *ngFor="let item of column.items"
421
+ <div *ngFor="let item of column.items"
416
422
  class="kanban-item"
417
- LibsUiDragItemDirective
423
+ LibsUiDragItemDirective
418
424
  [item]="item">
419
425
  {{ item.title }}
420
426
  </div>
@@ -442,4 +448,4 @@ export class CustomStyledComponent {
442
448
  }
443
449
  `]
444
450
  })
445
- ```
451
+ ```
@@ -1,6 +1,6 @@
1
- import { AfterViewInit, OnDestroy } from "@angular/core";
2
- import { LibsUiComponentsDragScrollDirective } from "./drag-scroll.directive";
3
- import { IDragDropFunctionControlEvent, IDragEnd, IDragLeave, IDragOver, IDragStart, IDrop } from "./interfaces/event.interface";
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { LibsUiComponentsDragScrollDirective } from './drag-scroll.directive';
3
+ import { IDragDropFunctionControlEvent, IDragEnd, IDragLeave, IDragOver, IDragStart, IDrop } from './interfaces/event.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LibsUiComponentsDragContainerDirective extends LibsUiComponentsDragScrollDirective implements AfterViewInit, OnDestroy {
6
6
  private groupID;
@@ -9,7 +9,7 @@ export declare class LibsUiComponentsDragContainerDirective extends LibsUiCompon
9
9
  readonly disableDragContainer: import("@angular/core").InputSignal<boolean | undefined>;
10
10
  readonly mode: import("@angular/core").InputSignalWithTransform<string, "move" | "copy">;
11
11
  readonly directionDrag: import("@angular/core").InputSignal<"horizontal" | "vertical" | undefined>;
12
- readonly viewEncapsulation: import("@angular/core").InputSignalWithTransform<"emulated" | "none", "emulated" | "none" | undefined>;
12
+ readonly viewEncapsulation: import("@angular/core").InputSignalWithTransform<"none" | "emulated", "none" | "emulated" | undefined>;
13
13
  readonly acceptDragSameGroup: import("@angular/core").InputSignalWithTransform<boolean, boolean | undefined>;
14
14
  readonly placeholder: import("@angular/core").InputSignalWithTransform<boolean, boolean | undefined>;
15
15
  readonly groupName: import("@angular/core").InputSignalWithTransform<string, string | undefined>;
@@ -28,6 +28,7 @@ export declare class LibsUiComponentsDragContainerDirective extends LibsUiCompon
28
28
  readonly outFunctionControl: import("@angular/core").OutputEmitterRef<IDragDropFunctionControlEvent>;
29
29
  constructor();
30
30
  ngAfterViewInit(): void;
31
+ get FunctionsControl(): IDragDropFunctionControlEvent;
31
32
  private setAttributeElementAndItemDrag;
32
33
  private initStyleAndAttribute;
33
34
  private setAnimationElementDragOver;
@@ -1,6 +1,6 @@
1
- import { WritableSignal } from "@angular/core";
2
- import { Subject } from "rxjs";
3
- import { IDragEnd, IDragItemInContainerVirtualScroll, IDragLeave, IDragOver, IDragStart, IDragging, IDrop, IItemDragInfo } from "./interfaces/event.interface";
1
+ import { WritableSignal } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { IDragEnd, IDragItemInContainerVirtualScroll, IDragLeave, IDragOver, IDragStart, IDragging, IDrop, IItemDragInfo } from './interfaces/event.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MoLibsSharedDragDropService {
6
6
  private itemsClick;
@@ -1,8 +1,8 @@
1
- import { AfterViewInit, OnDestroy } from "@angular/core";
2
- import { IBoundingClientRect } from "@libs-ui/interfaces-types";
3
- import { Subject } from "rxjs";
4
- import { MoLibsSharedDragDropService } from "./drag-drop.service";
5
- import { IDragEnd } from "./interfaces/event.interface";
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { IBoundingClientRect } from '@libs-ui/interfaces-types';
3
+ import { Subject } from 'rxjs';
4
+ import { MoLibsSharedDragDropService } from './drag-drop.service';
5
+ import { IDragEnd } from './interfaces/event.interface';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class LibsUiDragItemInContainerVirtualScrollDirective implements AfterViewInit, OnDestroy {
8
8
  protected onDestroy: Subject<void>;
@@ -1,6 +1,6 @@
1
- import { AfterViewInit, OnDestroy } from "@angular/core";
2
- import { LibsUiDragItemInContainerVirtualScrollDirective } from "./drag-item-in-container-virtual-scroll.directive";
3
- import { IDragEnd, IDragLeave, IDragOver, IDragStart, IDrop } from "./interfaces/event.interface";
1
+ import { AfterViewInit, OnDestroy } from '@angular/core';
2
+ import { LibsUiDragItemInContainerVirtualScrollDirective } from './drag-item-in-container-virtual-scroll.directive';
3
+ import { IDragEnd, IDragLeave, IDragOver, IDragStart, IDrop } from './interfaces/event.interface';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class LibsUiDragItemDirective extends LibsUiDragItemInContainerVirtualScrollDirective implements AfterViewInit, OnDestroy {
6
6
  private isDragOver;
@@ -1,8 +1,8 @@
1
- import { AfterViewInit, ElementRef, OnDestroy } from "@angular/core";
2
- import { VirtualScrollerComponent } from "@iharbeck/ngx-virtual-scroller";
3
- import { Subject } from "rxjs";
4
- import { MoLibsSharedDragDropService } from "./drag-drop.service";
5
- import { IDragging } from "./interfaces/event.interface";
1
+ import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
2
+ import { VirtualScrollerComponent } from '@iharbeck/ngx-virtual-scroller';
3
+ import { Subject } from 'rxjs';
4
+ import { MoLibsSharedDragDropService } from './drag-drop.service';
5
+ import { IDragging } from './interfaces/event.interface';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class LibsUiComponentsDragScrollDirective implements AfterViewInit, OnDestroy {
8
8
  private stopScroll;
@@ -1,51 +1,53 @@
1
1
  export const styleContainer = (config, viewEncapsulation, groupID) => {
2
- const defaultConfig = [{
2
+ const defaultConfig = [
3
+ {
3
4
  className: 'libs-ui-drag-drop-container',
4
- styles: `display:block;`
5
+ styles: `display:block;`,
5
6
  },
6
7
  {
7
8
  className: 'libs-ui-drag-drop-item',
8
9
  styles: `
9
- cursor:move;`
10
+ cursor:move;`,
10
11
  },
11
12
  {
12
13
  className: 'libs-ui-drag-drop-item-placeholder',
13
- styles: `visibility: hidden;`
14
+ styles: `visibility: hidden;`,
14
15
  },
15
16
  {
16
17
  className: 'libs-ui-drag-drop-item-origin-placeholder',
17
- styles: `visibility: hidden;`
18
+ styles: `visibility: hidden;`,
18
19
  },
19
20
  {
20
21
  className: 'libs-ui-drag-drop-item-drop-placeholder',
21
- styles: `visibility: hidden;`
22
+ styles: `visibility: hidden;`,
22
23
  },
23
24
  {
24
25
  className: 'libs-ui-drag-drop-item-dragging',
25
- styles: `cursor:move; user-select: none; `
26
+ styles: `cursor:move; user-select: none; `,
26
27
  },
27
28
  {
28
29
  className: 'libs-ui-drag-drop-item-disable',
29
- styles: ` cursor:not-allowed;`
30
+ styles: ` cursor:not-allowed;`,
30
31
  },
31
32
  {
32
33
  className: 'libs-ui-drag-drop-item-translate-bottom',
33
- styles: `position:relative;animation: translateBottom 0.35s 1 ease;`
34
+ styles: `position:relative;animation: translateBottom 0.35s 1 ease;`,
34
35
  },
35
36
  {
36
37
  className: 'libs-ui-drag-drop-item-translate-top',
37
- styles: `position:relative;animation: translateTop 0.35s 1 ease;`
38
+ styles: `position:relative;animation: translateTop 0.35s 1 ease;`,
38
39
  },
39
40
  {
40
41
  className: 'libs-ui-drag-drop-item-translate-left',
41
- styles: `position:relative;animation: translateLeft 0.35s 1 ease;`
42
+ styles: `position:relative;animation: translateLeft 0.35s 1 ease;`,
42
43
  },
43
44
  {
44
45
  className: 'libs-ui-drag-drop-item-translate-right',
45
- styles: `position:relative;animation: translateRight 0.35s 1 ease;`
46
- }];
47
- config.forEach(item => {
48
- const itemExits = defaultConfig.find(defaultItem => defaultItem.className === item.className);
46
+ styles: `position:relative;animation: translateRight 0.35s 1 ease;`,
47
+ },
48
+ ];
49
+ config.forEach((item) => {
50
+ const itemExits = defaultConfig.find((defaultItem) => defaultItem.className === item.className);
49
51
  if (itemExits) {
50
52
  itemExits.styles = item.styles;
51
53
  return;
@@ -99,4 +101,4 @@ export const styleContainer = (config, viewEncapsulation, groupID) => {
99
101
  ${styles}`.replace(/\n+/g, '');
100
102
  return styles;
101
103
  };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kcmFnLWRyb3Avc3JjL2RlZmluZXMvY3NzLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFvRCxFQUFFLGlCQUFzQyxFQUFFLE9BQWUsRUFBVSxFQUFFO0lBQ3RKLE1BQU0sYUFBYSxHQUFHLENBQUM7WUFDckIsU0FBUyxFQUFFLDZCQUE2QjtZQUN4QyxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsd0JBQXdCO1lBQ25DLE1BQU0sRUFBRTtpQkFDSztTQUNkO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsb0NBQW9DO1lBQy9DLE1BQU0sRUFBRSxxQkFBcUI7U0FDOUI7UUFDRDtZQUNFLFNBQVMsRUFBRSwyQ0FBMkM7WUFDdEQsTUFBTSxFQUFFLHFCQUFxQjtTQUM5QjtRQUNEO1lBQ0UsU0FBUyxFQUFFLHlDQUF5QztZQUNwRCxNQUFNLEVBQUUscUJBQXFCO1NBQzlCO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsaUNBQWlDO1lBQzVDLE1BQU0sRUFBRSxtQ0FBbUM7U0FDNUM7UUFDRDtZQUNFLFNBQVMsRUFBRSxnQ0FBZ0M7WUFDM0MsTUFBTSxFQUFFLHNCQUFzQjtTQUMvQjtRQUNEO1lBQ0UsU0FBUyxFQUFFLHlDQUF5QztZQUNwRCxNQUFNLEVBQUUsNERBQTREO1NBQ3JFO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsc0NBQXNDO1lBQ2pELE1BQU0sRUFBRSx5REFBeUQ7U0FDbEU7UUFDRDtZQUNFLFNBQVMsRUFBRSx1Q0FBdUM7WUFDbEQsTUFBTSxFQUFFLDBEQUEwRDtTQUNuRTtRQUNEO1lBQ0UsU0FBUyxFQUFFLHdDQUF3QztZQUNuRCxNQUFNLEVBQUUsMkRBQTJEO1NBQ3BFLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDcEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlGLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxTQUFTLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFFL0IsT0FBTztRQUNULENBQUM7UUFDRCxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGNBQWMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFFaEIsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQzdCLE1BQU0sS0FBSyxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO1FBRS9ELE1BQU0sR0FBRyxHQUFHLE1BQU0sR0FBRyxLQUFLLElBQUksQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFzQ1AsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUUvQixPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qgc3R5bGVDb250YWluZXIgPSAoY29uZmlnOiBBcnJheTx7IGNsYXNzTmFtZTogc3RyaW5nLCBzdHlsZXM6IHN0cmluZyB9Piwgdmlld0VuY2Fwc3VsYXRpb246ICdlbXVsYXRlZCcgfCAnbm9uZScsIGdyb3VwSUQ6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gIGNvbnN0IGRlZmF1bHRDb25maWcgPSBbe1xuICAgIGNsYXNzTmFtZTogJ2xpYnMtdWktZHJhZy1kcm9wLWNvbnRhaW5lcicsXG4gICAgc3R5bGVzOiBgZGlzcGxheTpibG9jaztgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtJyxcbiAgICBzdHlsZXM6IGBcbiAgICBjdXJzb3I6bW92ZTtgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLXBsYWNlaG9sZGVyJyxcbiAgICBzdHlsZXM6IGB2aXNpYmlsaXR5OiBoaWRkZW47YFxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1vcmlnaW4tcGxhY2Vob2xkZXInLFxuICAgIHN0eWxlczogYHZpc2liaWxpdHk6IGhpZGRlbjtgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRyb3AtcGxhY2Vob2xkZXInLFxuICAgIHN0eWxlczogYHZpc2liaWxpdHk6IGhpZGRlbjtgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRyYWdnaW5nJyxcbiAgICBzdHlsZXM6IGBjdXJzb3I6bW92ZTsgIHVzZXItc2VsZWN0OiBub25lOyBgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRpc2FibGUnLFxuICAgIHN0eWxlczogYCBjdXJzb3I6bm90LWFsbG93ZWQ7YFxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtYm90dG9tJyxcbiAgICBzdHlsZXM6IGBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246IHRyYW5zbGF0ZUJvdHRvbSAwLjM1cyAxIGVhc2U7YFxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtdG9wJyxcbiAgICBzdHlsZXM6IGBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246IHRyYW5zbGF0ZVRvcCAwLjM1cyAxIGVhc2U7YFxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtbGVmdCcsXG4gICAgc3R5bGVzOiBgcG9zaXRpb246cmVsYXRpdmU7YW5pbWF0aW9uOiB0cmFuc2xhdGVMZWZ0IDAuMzVzIDEgZWFzZTtgXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLXRyYW5zbGF0ZS1yaWdodCcsXG4gICAgc3R5bGVzOiBgcG9zaXRpb246cmVsYXRpdmU7YW5pbWF0aW9uOiB0cmFuc2xhdGVSaWdodCAwLjM1cyAxIGVhc2U7YFxuICB9XTtcblxuICBjb25maWcuZm9yRWFjaChpdGVtID0+IHtcbiAgICBjb25zdCBpdGVtRXhpdHMgPSBkZWZhdWx0Q29uZmlnLmZpbmQoZGVmYXVsdEl0ZW0gPT4gZGVmYXVsdEl0ZW0uY2xhc3NOYW1lID09PSBpdGVtLmNsYXNzTmFtZSk7XG5cbiAgICBpZiAoaXRlbUV4aXRzKSB7XG4gICAgICBpdGVtRXhpdHMuc3R5bGVzID0gaXRlbS5zdHlsZXM7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGVmYXVsdENvbmZpZy5wdXNoKGl0ZW0pO1xuICB9KTtcbiAgY29uc3QgZ3JvdXBBdHRyID0gdmlld0VuY2Fwc3VsYXRpb24gPyBgW2dyb3VwSUR+PVwiJHtncm91cElEfVwiXWAgOiAnJztcbiAgbGV0IHN0eWxlcyA9ICcnO1xuXG4gIGRlZmF1bHRDb25maWcuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGNvbnN0IHN0eWxlID0gYCR7Z3JvdXBBdHRyfS4ke2l0ZW0uY2xhc3NOYW1lfXske2l0ZW0uc3R5bGVzfX1gO1xuXG4gICAgc3R5bGVzID0gYCR7c3R5bGVzfSR7c3R5bGV9XFxuYDtcbiAgfSk7XG5cbiAgc3R5bGVzID0gYCBAa2V5ZnJhbWVzIHRyYW5zbGF0ZVRvcCB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDMwcHgpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICB9XG4gIFxuICBAa2V5ZnJhbWVzIHRyYW5zbGF0ZUJvdHRvbSB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0zMHB4KTtcbiAgICB9XG4gIFxuICAgIDEwMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDBweCk7XG4gICAgfVxuICB9XG4gIEBrZXlmcmFtZXMgdHJhbnNsYXRlTGVmdCB7XG4gICAgMCUge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDMwcHgpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgfVxuICB9XG4gIFxuICBAa2V5ZnJhbWVzIHRyYW5zbGF0ZVJpZ2h0IHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTMwcHgpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICB9XG4gIH1cbiAgJHtzdHlsZXN9YC5yZXBsYWNlKC9cXG4rL2csICcnKTtcblxuICByZXR1cm4gc3R5bGVzO1xufTsiXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzLmRlZmluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9kcmFnLWRyb3Avc3JjL2RlZmluZXMvY3NzLmRlZmluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFvRCxFQUFFLGlCQUFzQyxFQUFFLE9BQWUsRUFBVSxFQUFFO0lBQ3RKLE1BQU0sYUFBYSxHQUFHO1FBQ3BCO1lBQ0UsU0FBUyxFQUFFLDZCQUE2QjtZQUN4QyxNQUFNLEVBQUUsZ0JBQWdCO1NBQ3pCO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsd0JBQXdCO1lBQ25DLE1BQU0sRUFBRTtpQkFDRztTQUNaO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsb0NBQW9DO1lBQy9DLE1BQU0sRUFBRSxxQkFBcUI7U0FDOUI7UUFDRDtZQUNFLFNBQVMsRUFBRSwyQ0FBMkM7WUFDdEQsTUFBTSxFQUFFLHFCQUFxQjtTQUM5QjtRQUNEO1lBQ0UsU0FBUyxFQUFFLHlDQUF5QztZQUNwRCxNQUFNLEVBQUUscUJBQXFCO1NBQzlCO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsaUNBQWlDO1lBQzVDLE1BQU0sRUFBRSxtQ0FBbUM7U0FDNUM7UUFDRDtZQUNFLFNBQVMsRUFBRSxnQ0FBZ0M7WUFDM0MsTUFBTSxFQUFFLHNCQUFzQjtTQUMvQjtRQUNEO1lBQ0UsU0FBUyxFQUFFLHlDQUF5QztZQUNwRCxNQUFNLEVBQUUsNERBQTREO1NBQ3JFO1FBQ0Q7WUFDRSxTQUFTLEVBQUUsc0NBQXNDO1lBQ2pELE1BQU0sRUFBRSx5REFBeUQ7U0FDbEU7UUFDRDtZQUNFLFNBQVMsRUFBRSx1Q0FBdUM7WUFDbEQsTUFBTSxFQUFFLDBEQUEwRDtTQUNuRTtRQUNEO1lBQ0UsU0FBUyxFQUFFLHdDQUF3QztZQUNuRCxNQUFNLEVBQUUsMkRBQTJEO1NBQ3BFO0tBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN0QixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVoRyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBRS9CLE9BQU87UUFDVCxDQUFDO1FBQ0QsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUNILE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxjQUFjLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDckUsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBRWhCLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUM3QixNQUFNLEtBQUssR0FBRyxHQUFHLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUUvRCxNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDakMsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBc0NQLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFL0IsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHN0eWxlQ29udGFpbmVyID0gKGNvbmZpZzogQXJyYXk8eyBjbGFzc05hbWU6IHN0cmluZzsgc3R5bGVzOiBzdHJpbmcgfT4sIHZpZXdFbmNhcHN1bGF0aW9uOiAnZW11bGF0ZWQnIHwgJ25vbmUnLCBncm91cElEOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkZWZhdWx0Q29uZmlnID0gW1xuICAgIHtcbiAgICAgIGNsYXNzTmFtZTogJ2xpYnMtdWktZHJhZy1kcm9wLWNvbnRhaW5lcicsXG4gICAgICBzdHlsZXM6IGBkaXNwbGF5OmJsb2NrO2AsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtJyxcbiAgICAgIHN0eWxlczogYFxuICAgIGN1cnNvcjptb3ZlO2AsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLXBsYWNlaG9sZGVyJyxcbiAgICAgIHN0eWxlczogYHZpc2liaWxpdHk6IGhpZGRlbjtgLFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS1vcmlnaW4tcGxhY2Vob2xkZXInLFxuICAgICAgc3R5bGVzOiBgdmlzaWJpbGl0eTogaGlkZGVuO2AsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRyb3AtcGxhY2Vob2xkZXInLFxuICAgICAgc3R5bGVzOiBgdmlzaWJpbGl0eTogaGlkZGVuO2AsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRyYWdnaW5nJyxcbiAgICAgIHN0eWxlczogYGN1cnNvcjptb3ZlOyAgdXNlci1zZWxlY3Q6IG5vbmU7IGAsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLWRpc2FibGUnLFxuICAgICAgc3R5bGVzOiBgIGN1cnNvcjpub3QtYWxsb3dlZDtgLFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtYm90dG9tJyxcbiAgICAgIHN0eWxlczogYHBvc2l0aW9uOnJlbGF0aXZlO2FuaW1hdGlvbjogdHJhbnNsYXRlQm90dG9tIDAuMzVzIDEgZWFzZTtgLFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtdG9wJyxcbiAgICAgIHN0eWxlczogYHBvc2l0aW9uOnJlbGF0aXZlO2FuaW1hdGlvbjogdHJhbnNsYXRlVG9wIDAuMzVzIDEgZWFzZTtgLFxuICAgIH0sXG4gICAge1xuICAgICAgY2xhc3NOYW1lOiAnbGlicy11aS1kcmFnLWRyb3AtaXRlbS10cmFuc2xhdGUtbGVmdCcsXG4gICAgICBzdHlsZXM6IGBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246IHRyYW5zbGF0ZUxlZnQgMC4zNXMgMSBlYXNlO2AsXG4gICAgfSxcbiAgICB7XG4gICAgICBjbGFzc05hbWU6ICdsaWJzLXVpLWRyYWctZHJvcC1pdGVtLXRyYW5zbGF0ZS1yaWdodCcsXG4gICAgICBzdHlsZXM6IGBwb3NpdGlvbjpyZWxhdGl2ZTthbmltYXRpb246IHRyYW5zbGF0ZVJpZ2h0IDAuMzVzIDEgZWFzZTtgLFxuICAgIH0sXG4gIF07XG5cbiAgY29uZmlnLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICBjb25zdCBpdGVtRXhpdHMgPSBkZWZhdWx0Q29uZmlnLmZpbmQoKGRlZmF1bHRJdGVtKSA9PiBkZWZhdWx0SXRlbS5jbGFzc05hbWUgPT09IGl0ZW0uY2xhc3NOYW1lKTtcblxuICAgIGlmIChpdGVtRXhpdHMpIHtcbiAgICAgIGl0ZW1FeGl0cy5zdHlsZXMgPSBpdGVtLnN0eWxlcztcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBkZWZhdWx0Q29uZmlnLnB1c2goaXRlbSk7XG4gIH0pO1xuICBjb25zdCBncm91cEF0dHIgPSB2aWV3RW5jYXBzdWxhdGlvbiA/IGBbZ3JvdXBJRH49XCIke2dyb3VwSUR9XCJdYCA6ICcnO1xuICBsZXQgc3R5bGVzID0gJyc7XG5cbiAgZGVmYXVsdENvbmZpZy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgY29uc3Qgc3R5bGUgPSBgJHtncm91cEF0dHJ9LiR7aXRlbS5jbGFzc05hbWV9eyR7aXRlbS5zdHlsZXN9fWA7XG5cbiAgICBzdHlsZXMgPSBgJHtzdHlsZXN9JHtzdHlsZX1cXG5gO1xuICB9KTtcblxuICBzdHlsZXMgPSBgIEBrZXlmcmFtZXMgdHJhbnNsYXRlVG9wIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMzBweCk7XG4gICAgfVxuICBcbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBrZXlmcmFtZXMgdHJhbnNsYXRlQm90dG9tIHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTMwcHgpO1xuICAgIH1cbiAgXG4gICAgMTAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTtcbiAgICB9XG4gIH1cbiAgQGtleWZyYW1lcyB0cmFuc2xhdGVMZWZ0IHtcbiAgICAwJSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMzBweCk7XG4gICAgfVxuICBcbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICB9XG4gIH1cbiAgXG4gIEBrZXlmcmFtZXMgdHJhbnNsYXRlUmlnaHQge1xuICAgIDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMzBweCk7XG4gICAgfVxuICBcbiAgICAxMDAlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwcHgpO1xuICAgIH1cbiAgfVxuICAke3N0eWxlc31gLnJlcGxhY2UoL1xcbisvZywgJycpO1xuXG4gIHJldHVybiBzdHlsZXM7XG59O1xuIl19