@fundamental-ngx/core 0.33.3-rc.6 → 0.33.4-rc.1

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.
Files changed (101) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/package.json +1 -1
  18. package/dialog/package.json +1 -1
  19. package/dynamic-page/package.json +1 -1
  20. package/dynamic-side-content/package.json +1 -1
  21. package/esm2020/upload-collection/upload-collection-item.directive.mjs +81 -8
  22. package/facets/package.json +1 -1
  23. package/feed-input/package.json +1 -1
  24. package/feed-list-item/package.json +1 -1
  25. package/fesm2015/fundamental-ngx-core-upload-collection.mjs +80 -7
  26. package/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  27. package/fesm2020/fundamental-ngx-core-upload-collection.mjs +80 -7
  28. package/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  29. package/file-uploader/package.json +1 -1
  30. package/fixed-card-layout/package.json +1 -1
  31. package/flexible-column-layout/package.json +1 -1
  32. package/form/package.json +1 -1
  33. package/formatted-text/package.json +1 -1
  34. package/grid-list/package.json +1 -1
  35. package/icon/package.json +1 -1
  36. package/illustrated-message/package.json +1 -1
  37. package/infinite-scroll/package.json +1 -1
  38. package/info-label/package.json +1 -1
  39. package/inline-help/package.json +1 -1
  40. package/input-group/package.json +1 -1
  41. package/layout-grid/package.json +1 -1
  42. package/layout-panel/package.json +1 -1
  43. package/link/package.json +1 -1
  44. package/list/package.json +1 -1
  45. package/menu/package.json +1 -1
  46. package/message-box/package.json +1 -1
  47. package/message-strip/package.json +1 -1
  48. package/message-toast/package.json +1 -1
  49. package/micro-process-flow/package.json +1 -1
  50. package/mobile-mode/package.json +1 -1
  51. package/multi-input/package.json +1 -1
  52. package/nested-list/package.json +1 -1
  53. package/notification/package.json +1 -1
  54. package/object-identifier/package.json +1 -1
  55. package/object-marker/package.json +1 -1
  56. package/object-number/package.json +1 -1
  57. package/object-status/package.json +1 -1
  58. package/package.json +1 -1
  59. package/pagination/package.json +1 -1
  60. package/panel/package.json +1 -1
  61. package/popover/package.json +1 -1
  62. package/product-switch/package.json +1 -1
  63. package/progress-indicator/package.json +1 -1
  64. package/quick-view/package.json +1 -1
  65. package/radio/package.json +1 -1
  66. package/rating-indicator/package.json +1 -1
  67. package/resizable-card-layout/package.json +1 -1
  68. package/scroll-spy/package.json +1 -1
  69. package/scrollbar/package.json +1 -1
  70. package/segmented-button/package.json +1 -1
  71. package/select/package.json +1 -1
  72. package/shared/package.json +1 -1
  73. package/shellbar/package.json +1 -1
  74. package/side-navigation/package.json +1 -1
  75. package/slider/package.json +1 -1
  76. package/split-button/package.json +1 -1
  77. package/splitter/package.json +1 -1
  78. package/status-indicator/package.json +1 -1
  79. package/step-input/package.json +1 -1
  80. package/switch/package.json +1 -1
  81. package/table/package.json +1 -1
  82. package/tabs/package.json +1 -1
  83. package/text/package.json +1 -1
  84. package/tile/package.json +1 -1
  85. package/time/package.json +1 -1
  86. package/time-picker/package.json +1 -1
  87. package/timeline/package.json +1 -1
  88. package/title/package.json +1 -1
  89. package/token/package.json +1 -1
  90. package/toolbar/package.json +1 -1
  91. package/tree/package.json +1 -1
  92. package/upload-collection/esm2020/upload-collection-item.directive.mjs +81 -8
  93. package/upload-collection/fesm2015/fundamental-ngx-core-upload-collection.mjs +80 -7
  94. package/upload-collection/fesm2015/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  95. package/upload-collection/fesm2020/fundamental-ngx-core-upload-collection.mjs +80 -7
  96. package/upload-collection/fesm2020/fundamental-ngx-core-upload-collection.mjs.map +1 -1
  97. package/upload-collection/package.json +1 -1
  98. package/upload-collection/upload-collection-item.directive.d.ts +32 -2
  99. package/utils/package.json +1 -1
  100. package/vertical-navigation/package.json +1 -1
  101. package/wizard/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-bar",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/action-sheet",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/alert",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/avatar-group",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
package/bar/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/bar",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/breadcrumb",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/busy-indicator",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/button",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/calendar",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
package/card/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/card",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/carousel",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/checkbox",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/combobox",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/date-picker",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/datetime-picker",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dialog",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-page",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/dynamic-side-content",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,11 +1,12 @@
1
- import { ContentChild, Directive, EventEmitter, Input, Output } from '@angular/core';
1
+ import { ContentChild, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
2
  import { UploadCollectionFormItemComponent } from './upload-collection-form-item/upload-collection-form-item.component';
3
3
  import { UploadCollectionButtonGroupComponent } from './upload-collection-button-group/upload-collection-button-group.component';
4
4
  import { Subscription } from 'rxjs';
5
5
  import { UploadCollectionTitleContainerDirective, UploadCollectionTitleDirective } from './upload-collection-simple.directives';
6
6
  import * as i0 from "@angular/core";
7
7
  export class UploadCollectionItemDirective {
8
- constructor() {
8
+ constructor(elementRef) {
9
+ this.elementRef = elementRef;
9
10
  /** Event emitted when the user changes a file name. */
10
11
  this.fileNameChanged = new EventEmitter();
11
12
  /** Event emitted when presses the delete button. */
@@ -15,23 +16,52 @@ export class UploadCollectionItemDirective {
15
16
  }
16
17
  /** @hidden */
17
18
  ngAfterContentInit() {
18
- this._titleDirective.elRef.nativeElement.innerHTML = this.fileName + '.' + this.extension;
19
+ this.fileNameFull = this.fileName + '.' + this.extension;
20
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
19
21
  this._handleDeleteClickedSubscription();
20
22
  this._handleOkClickedSubscription();
21
23
  this._handleEditClickedSubscription();
22
24
  this._handleFormItemInputChangedSubscription();
23
25
  }
24
26
  /** @hidden */
27
+ ngAfterViewInit() {
28
+ this.onResize();
29
+ }
30
+ /** @hidden */
25
31
  ngOnDestroy() {
26
32
  this._subscriptions.unsubscribe();
27
33
  }
28
34
  /** @hidden */
35
+ onResize() {
36
+ if (!this.elementRef.nativeElement.parentElement) {
37
+ return;
38
+ }
39
+ this.titleWidth = this.getTitleWidth();
40
+ this.containerWidth = this.getContainerWidth();
41
+ // if first load and no previous container width, or if container boundary is resized to smaller than before
42
+ if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {
43
+ // and the title extends past the container, 1.05x padding to prevent jaggy resizing.
44
+ if (this.titleWidth * 1.05 >= this.containerWidth) {
45
+ this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);
46
+ }
47
+ }
48
+ else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {
49
+ // Looks to expand file title if container width is resized to greater than before
50
+ // reset file title to initial
51
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
52
+ this.resizeFileTitle(this.fileNameFull);
53
+ }
54
+ this.previousContainerWidth = this.containerWidth;
55
+ }
56
+ /** @hidden */
29
57
  _handleOkClickedSubscription() {
30
58
  this._subscriptions.add(this._buttonGroupComponent.okClicked.subscribe(() => {
31
59
  if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {
32
60
  this.fileName = this._formItemComponent.fileName;
33
61
  this._titleDirective.elRef.nativeElement.style.display = 'inline-block';
34
- this._titleDirective.elRef.nativeElement.innerHTML = this.fileName + '.' + this.extension;
62
+ this.fileNameFull = this.fileName + '.' + this.extension;
63
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
64
+ this.resizeFileTitle(this.fileNameFull);
35
65
  this._formItemComponent._editMode = false;
36
66
  this._buttonGroupComponent._editMode = false;
37
67
  this.fileNameChanged.emit(this);
@@ -72,9 +102,49 @@ export class UploadCollectionItemDirective {
72
102
  this._buttonGroupComponent._okButton.buildComponentCssClass();
73
103
  }));
74
104
  }
105
+ /** @hidden */
106
+ getTitleWidth() {
107
+ return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;
108
+ }
109
+ /** @hidden */
110
+ getContainerWidth() {
111
+ return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;
112
+ }
113
+ /**
114
+ * @hidden
115
+ *
116
+ * truncates the string by cutting out excess length in the middle and replacing with '...'
117
+ */
118
+ truncateTitle(str) {
119
+ const cutLength = Math.floor(str.length * 0.8);
120
+ if (str.length > cutLength) {
121
+ const stringLeftIndex = Math.floor(cutLength / 2);
122
+ const stringRightIndex = str.length - stringLeftIndex + 3;
123
+ return str.substring(0, stringLeftIndex) + '... ' + str.substring(stringRightIndex, str.length);
124
+ }
125
+ return str;
126
+ }
127
+ /**
128
+ * @hidden
129
+ *
130
+ * determines if file title needs to be truncated given container constraint.
131
+ */
132
+ resizeFileTitle(titleStr) {
133
+ let curTitle = titleStr;
134
+ this.containerWidth = this.getContainerWidth();
135
+ this.titleWidth = this.getTitleWidth();
136
+ // repeatedly truncate the title until it fits inside container
137
+ while (this.titleWidth * 1.05 >= this.containerWidth) {
138
+ const truncatedTitleStr = this.truncateTitle(curTitle);
139
+ this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;
140
+ curTitle = truncatedTitleStr;
141
+ this.titleWidth = this.getTitleWidth();
142
+ this.containerWidth = this.getContainerWidth();
143
+ }
144
+ }
75
145
  }
76
- UploadCollectionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
77
- UploadCollectionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: UploadCollectionItemDirective, selector: "[fd-upload-collection-item]", inputs: { fileName: "fileName", extension: "extension" }, outputs: { fileNameChanged: "fileNameChanged", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__item" }, queries: [{ propertyName: "_formItemComponent", first: true, predicate: UploadCollectionFormItemComponent, descendants: true }, { propertyName: "_titleDirective", first: true, predicate: UploadCollectionTitleDirective, descendants: true }, { propertyName: "_buttonGroupComponent", first: true, predicate: UploadCollectionButtonGroupComponent, descendants: true }, { propertyName: "_titleContainerDirective", first: true, predicate: UploadCollectionTitleContainerDirective, descendants: true }], ngImport: i0 });
146
+ UploadCollectionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
147
+ UploadCollectionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: UploadCollectionItemDirective, selector: "[fd-upload-collection-item]", inputs: { fileName: "fileName", extension: "extension" }, outputs: { fileNameChanged: "fileNameChanged", deleteClicked: "deleteClicked" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-upload-collection__item" }, queries: [{ propertyName: "_formItemComponent", first: true, predicate: UploadCollectionFormItemComponent, descendants: true }, { propertyName: "_titleDirective", first: true, predicate: UploadCollectionTitleDirective, descendants: true }, { propertyName: "_buttonGroupComponent", first: true, predicate: UploadCollectionButtonGroupComponent, descendants: true }, { propertyName: "_titleContainerDirective", first: true, predicate: UploadCollectionTitleContainerDirective, descendants: true }], ngImport: i0 });
78
148
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, decorators: [{
79
149
  type: Directive,
80
150
  args: [{
@@ -82,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
82
152
  selector: '[fd-upload-collection-item]',
83
153
  host: { class: 'fd-upload-collection__item' }
84
154
  }]
85
- }], propDecorators: { fileName: [{
155
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fileName: [{
86
156
  type: Input
87
157
  }], extension: [{
88
158
  type: Input
@@ -102,5 +172,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
102
172
  type: Output
103
173
  }], deleteClicked: [{
104
174
  type: Output
175
+ }], onResize: [{
176
+ type: HostListener,
177
+ args: ['window:resize', []]
105
178
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWNvbGxlY3Rpb24taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91cGxvYWQtY29sbGVjdGlvbi91cGxvYWQtY29sbGVjdGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDeEgsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQ0gsdUNBQXVDLEVBQ3ZDLDhCQUE4QixFQUNqQyxNQUFNLHVDQUF1QyxDQUFDOztBQU8vQyxNQUFNLE9BQU8sNkJBQTZCO0lBTDFDO1FBOEJJLHVEQUF1RDtRQUU5QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbkQsb0RBQW9EO1FBRTNDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVqRCxjQUFjO1FBQ04sbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0tBMEUvQztJQXhFRyxjQUFjO0lBQ2Qsa0JBQWtCO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFGLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyx1Q0FB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QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ04sdUNBQXVDO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDN0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzswSEEzR1EsNkJBQTZCOzhHQUE3Qiw2QkFBNkIsc1RBVXhCLGlDQUFpQyxrRkFJakMsOEJBQThCLHdGQUk5QixvQ0FBb0MsMkZBSXBDLHVDQUF1QzsyRkF0QjVDLDZCQUE2QjtrQkFMekMsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtpQkFDaEQ7OEJBSUcsUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFNBQVM7c0JBRFIsS0FBSztnQkFLTixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsaUNBQWlDO2dCQUsvQyxlQUFlO3NCQURkLFlBQVk7dUJBQUMsOEJBQThCO2dCQUs1QyxxQkFBcUI7c0JBRHBCLFlBQVk7dUJBQUMsb0NBQW9DO2dCQUtsRCx3QkFBd0I7c0JBRHZCLFlBQVk7dUJBQUMsdUNBQXVDO2dCQUs1QyxlQUFlO3NCQUR2QixNQUFNO2dCQUtFLGFBQWE7c0JBRHJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwbG9hZENvbGxlY3Rpb25Gb3JtSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkLWNvbGxlY3Rpb24tZm9ybS1pdGVtL3VwbG9hZC1jb2xsZWN0aW9uLWZvcm0taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXBsb2FkQ29sbGVjdGlvbkJ1dHRvbkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQtY29sbGVjdGlvbi1idXR0b24tZ3JvdXAvdXBsb2FkLWNvbGxlY3Rpb24tYnV0dG9uLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgVXBsb2FkQ29sbGVjdGlvblRpdGxlQ29udGFpbmVyRGlyZWN0aXZlLFxuICAgIFVwbG9hZENvbGxlY3Rpb25UaXRsZURpcmVjdGl2ZVxufSBmcm9tICcuL3VwbG9hZC1jb2xsZWN0aW9uLXNpbXBsZS5kaXJlY3RpdmVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmZC11cGxvYWQtY29sbGVjdGlvbi1pdGVtXScsXG4gICAgaG9zdDogeyBjbGFzczogJ2ZkLXVwbG9hZC1jb2xsZWN0aW9uX19pdGVtJyB9XG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbGxlY3Rpb25JdGVtRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGZpbGUsIG5vdCBpbmNsdWRpbmcgdGhlIHR5cGUgZXh0ZW5zaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBUaGUgZmlsZSB0eXBlIGV4dGVuc2lvbi4gKi9cbiAgICBASW5wdXQoKVxuICAgIGV4dGVuc2lvbjogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFVwbG9hZENvbGxlY3Rpb25Gb3JtSXRlbUNvbXBvbmVudClcbiAgICBfZm9ybUl0ZW1Db21wb25lbnQ6IFVwbG9hZENvbGxlY3Rpb25Gb3JtSXRlbUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChVcGxvYWRDb2xsZWN0aW9uVGl0bGVEaXJlY3RpdmUpXG4gICAgX3RpdGxlRGlyZWN0aXZlOiBVcGxvYWRDb2xsZWN0aW9uVGl0bGVEaXJlY3RpdmU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVXBsb2FkQ29sbGVjdGlvbkJ1dHRvbkdyb3VwQ29tcG9uZW50KVxuICAgIF9idXR0b25Hcm91cENvbXBvbmVudDogVXBsb2FkQ29sbGVjdGlvbkJ1dHRvbkdyb3VwQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFVwbG9hZENvbGxlY3Rpb25UaXRsZUNvbnRhaW5lckRpcmVjdGl2ZSlcbiAgICBfdGl0bGVDb250YWluZXJEaXJlY3RpdmU6IFVwbG9hZENvbGxlY3Rpb25UaXRsZUNvbnRhaW5lckRpcmVjdGl2ZTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2hhbmdlcyBhIGZpbGUgbmFtZS4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBmaWxlTmFtZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gcHJlc3NlcyB0aGUgZGVsZXRlIGJ1dHRvbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBkZWxldGVDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGl0bGVEaXJlY3RpdmUuZWxSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmZpbGVOYW1lICsgJy4nICsgdGhpcy5leHRlbnNpb247XG4gICAgICAgIHRoaXMuX2hhbmRsZURlbGV0ZUNsaWNrZWRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgdGhpcy5faGFuZGxlT2tDbGlja2VkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuX2hhbmRsZUVkaXRDbGlja2VkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuX2hhbmRsZUZvcm1JdGVtSW5wdXRDaGFuZ2VkU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlT2tDbGlja2VkU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50Lm9rQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZSAmJiB0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50LmZpbGVOYW1lO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGl0bGVEaXJlY3RpdmUuZWxSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLmZpbGVOYW1lICsgJy4nICsgdGhpcy5leHRlbnNpb247XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50Ll9lZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9idXR0b25Hcm91cENvbXBvbmVudC5fZWRpdE1vZGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTmFtZUNoYW5nZWQuZW1pdCh0aGlzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlRWRpdENsaWNrZWRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fYnV0dG9uR3JvdXBDb21wb25lbnQuZWRpdENsaWNrZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50Ll9lZGl0TW9kZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl90aXRsZUNvbnRhaW5lckRpcmVjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aXRsZUNvbnRhaW5lckRpcmVjdGl2ZS5hcHBseUNvbnRhaW5lckNsYXNzID0gIWV2ZW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzdHlsZXMgPSBbXTtcbiAgICAgICAgICAgICAgICBzdHlsZXMucHVzaCh0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlKTtcbiAgICAgICAgICAgICAgICB0aGlzLl90aXRsZUNvbnRhaW5lckRpcmVjdGl2ZT8uX29iamVjdE1hcmtlckNvbXBvbmVudHM/LmZvckVhY2goKG9iamVjdE1hcmtlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzdHlsZXMucHVzaChvYmplY3RNYXJrZXIuZWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuc3R5bGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgID8gc3R5bGVzLmZvckVhY2goKHN0eWxlKSA9PiAoc3R5bGUuZGlzcGxheSA9ICdub25lJykpXG4gICAgICAgICAgICAgICAgICAgIDogc3R5bGVzLmZvckVhY2goKHN0eWxlKSA9PiAoc3R5bGUuZGlzcGxheSA9ICdpbmxpbmUtYmxvY2snKSk7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50Ll9leHRlbnNpb24gPSB0aGlzLmV4dGVuc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1Db21wb25lbnQuZmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVEZWxldGVDbGlja2VkU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50LmRlbGV0ZUNsaWNrZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlbGV0ZUNsaWNrZWQuZW1pdCh0aGlzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVGb3JtSXRlbUlucHV0Q2hhbmdlZFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZUNoYW5nZWQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50Ll9va0J1dHRvbi5kaXNhYmxlZCA9IGV2ZW50ID09PSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLl9idXR0b25Hcm91cENvbXBvbmVudC5fb2tCdXR0b24uYnVpbGRDb21wb25lbnRDc3NDbGFzcygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWNvbGxlY3Rpb24taXRlbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi91cGxvYWQtY29sbGVjdGlvbi91cGxvYWQtY29sbGVjdGlvbi1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJFQUEyRSxDQUFDO0FBQ2pJLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUNILHVDQUF1QyxFQUN2Qyw4QkFBOEIsRUFDakMsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFPL0MsTUFBTSxPQUFPLDZCQUE2QjtJQW9FdEMsWUFBbUIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTNDekMsdURBQXVEO1FBRTlDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuRCxvREFBb0Q7UUFFM0Msa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRWpELGNBQWM7UUFDTixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFrQ0EsQ0FBQztJQXBCN0MsY0FBYztJQUNkLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN6RCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkUsSUFB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QUN2QyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsNEJBQTRCLEVBQUU7aUJBQ2hEO2lHQUlHLFFBQVE7c0JBRFAsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLGlDQUFpQztnQkFLL0MsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLDhCQUE4QjtnQkFLNUMscUJBQXFCO3NCQURwQixZQUFZO3VCQUFDLG9DQUFvQztnQkFLbEQsd0JBQXdCO3NCQUR2QixZQUFZO3VCQUFDLHVDQUF1QztnQkFLNUMsZUFBZTtzQkFEdkIsTUFBTTtnQkFLRSxhQUFhO3NCQURyQixNQUFNO2dCQTBDUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVXBsb2FkQ29sbGVjdGlvbkZvcm1JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi91cGxvYWQtY29sbGVjdGlvbi1mb3JtLWl0ZW0vdXBsb2FkLWNvbGxlY3Rpb24tZm9ybS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVcGxvYWRDb2xsZWN0aW9uQnV0dG9uR3JvdXBDb21wb25lbnQgfSBmcm9tICcuL3VwbG9hZC1jb2xsZWN0aW9uLWJ1dHRvbi1ncm91cC91cGxvYWQtY29sbGVjdGlvbi1idXR0b24tZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBVcGxvYWRDb2xsZWN0aW9uVGl0bGVDb250YWluZXJEaXJlY3RpdmUsXG4gICAgVXBsb2FkQ29sbGVjdGlvblRpdGxlRGlyZWN0aXZlXG59IGZyb20gJy4vdXBsb2FkLWNvbGxlY3Rpb24tc2ltcGxlLmRpcmVjdGl2ZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkLXVwbG9hZC1jb2xsZWN0aW9uLWl0ZW1dJyxcbiAgICBob3N0OiB7IGNsYXNzOiAnZmQtdXBsb2FkLWNvbGxlY3Rpb25fX2l0ZW0nIH1cbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkQ29sbGVjdGlvbkl0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgZmlsZSwgbm90IGluY2x1ZGluZyB0aGUgdHlwZSBleHRlbnNpb24uICovXG4gICAgQElucHV0KClcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIFRoZSBmaWxlIHR5cGUgZXh0ZW5zaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVXBsb2FkQ29sbGVjdGlvbkZvcm1JdGVtQ29tcG9uZW50KVxuICAgIF9mb3JtSXRlbUNvbXBvbmVudDogVXBsb2FkQ29sbGVjdGlvbkZvcm1JdGVtQ29tcG9uZW50O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkKFVwbG9hZENvbGxlY3Rpb25UaXRsZURpcmVjdGl2ZSlcbiAgICBfdGl0bGVEaXJlY3RpdmU6IFVwbG9hZENvbGxlY3Rpb25UaXRsZURpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZChVcGxvYWRDb2xsZWN0aW9uQnV0dG9uR3JvdXBDb21wb25lbnQpXG4gICAgX2J1dHRvbkdyb3VwQ29tcG9uZW50OiBVcGxvYWRDb2xsZWN0aW9uQnV0dG9uR3JvdXBDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBDb250ZW50Q2hpbGQoVXBsb2FkQ29sbGVjdGlvblRpdGxlQ29udGFpbmVyRGlyZWN0aXZlKVxuICAgIF90aXRsZUNvbnRhaW5lckRpcmVjdGl2ZTogVXBsb2FkQ29sbGVjdGlvblRpdGxlQ29udGFpbmVyRGlyZWN0aXZlO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdXNlciBjaGFuZ2VzIGEgZmlsZSBuYW1lLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZpbGVOYW1lQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiBwcmVzc2VzIHRoZSBkZWxldGUgYnV0dG9uLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGRlbGV0ZUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZmlsZU5hbWVGdWxsOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHRpdGxlV2lkdGg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuIHVzZWQgdG8gY29tcGFyZSB0byB0aGUgY3VycmVudCB3aWR0aCB0byBrbm93IHdoZXRoZXIgdG8gY29sbGFwc2Ugb3IgZXhwYW5kIHRpdGxlICovXG4gICAgcHJldmlvdXNDb250YWluZXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb250YWluZXJXaWR0aDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsZU5hbWVGdWxsID0gdGhpcy5maWxlTmFtZSArICcuJyArIHRoaXMuZXh0ZW5zaW9uO1xuICAgICAgICB0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRoaXMuZmlsZU5hbWVGdWxsO1xuICAgICAgICB0aGlzLl9oYW5kbGVEZWxldGVDbGlja2VkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuX2hhbmRsZU9rQ2xpY2tlZFN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLl9oYW5kbGVFZGl0Q2xpY2tlZFN1YnNjcmlwdGlvbigpO1xuICAgICAgICB0aGlzLl9oYW5kbGVGb3JtSXRlbUlucHV0Q2hhbmdlZFN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgW10pXG4gICAgb25SZXNpemUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGl0bGVXaWR0aCA9IHRoaXMuZ2V0VGl0bGVXaWR0aCgpO1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gdGhpcy5nZXRDb250YWluZXJXaWR0aCgpO1xuXG4gICAgICAgIC8vIGlmIGZpcnN0IGxvYWQgYW5kIG5vIHByZXZpb3VzIGNvbnRhaW5lciB3aWR0aCwgb3IgaWYgY29udGFpbmVyIGJvdW5kYXJ5IGlzIHJlc2l6ZWQgdG8gc21hbGxlciB0aGFuIGJlZm9yZVxuICAgICAgICBpZiAoIXRoaXMucHJldmlvdXNDb250YWluZXJXaWR0aCB8fCB0aGlzLmNvbnRhaW5lcldpZHRoIDwgdGhpcy5wcmV2aW91c0NvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAvLyBhbmQgdGhlIHRpdGxlIGV4dGVuZHMgcGFzdCB0aGUgY29udGFpbmVyLCAxLjA1eCBwYWRkaW5nIHRvIHByZXZlbnQgamFnZ3kgcmVzaXppbmcuXG4gICAgICAgICAgICBpZiAodGhpcy50aXRsZVdpZHRoICogMS4wNSA+PSB0aGlzLmNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNpemVGaWxlVGl0bGUodGhpcy5fdGl0bGVEaXJlY3RpdmUuZWxSZWYubmF0aXZlRWxlbWVudC5pbm5lckhUTUwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucHJldmlvdXNDb250YWluZXJXaWR0aCAmJiB0aGlzLmNvbnRhaW5lcldpZHRoID4gdGhpcy5wcmV2aW91c0NvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICAvLyBMb29rcyB0byBleHBhbmQgZmlsZSB0aXRsZSBpZiBjb250YWluZXIgd2lkdGggaXMgcmVzaXplZCB0byBncmVhdGVyIHRoYW4gYmVmb3JlXG4gICAgICAgICAgICAvLyByZXNldCBmaWxlIHRpdGxlIHRvIGluaXRpYWxcbiAgICAgICAgICAgIHRoaXMuX3RpdGxlRGlyZWN0aXZlLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5maWxlTmFtZUZ1bGw7XG4gICAgICAgICAgICB0aGlzLnJlc2l6ZUZpbGVUaXRsZSh0aGlzLmZpbGVOYW1lRnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnByZXZpb3VzQ29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lcldpZHRoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaGFuZGxlT2tDbGlja2VkU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50Lm9rQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZSAmJiB0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZSAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTmFtZSA9IHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50LmZpbGVOYW1lO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWxlTmFtZUZ1bGwgPSB0aGlzLmZpbGVOYW1lICsgJy4nICsgdGhpcy5leHRlbnNpb247XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpdGxlRGlyZWN0aXZlLmVsUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gdGhpcy5maWxlTmFtZUZ1bGw7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzaXplRmlsZVRpdGxlKHRoaXMuZmlsZU5hbWVGdWxsKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1Db21wb25lbnQuX2VkaXRNb2RlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50Ll9lZGl0TW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVOYW1lQ2hhbmdlZC5lbWl0KHRoaXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYW5kbGVFZGl0Q2xpY2tlZFN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICB0aGlzLl9idXR0b25Hcm91cENvbXBvbmVudC5lZGl0Q2xpY2tlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1Db21wb25lbnQuX2VkaXRNb2RlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RpdGxlQ29udGFpbmVyRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RpdGxlQ29udGFpbmVyRGlyZWN0aXZlLmFwcGx5Q29udGFpbmVyQ2xhc3MgPSAhZXZlbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHN0eWxlcyA9IFtdO1xuICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKHRoaXMuX3RpdGxlRGlyZWN0aXZlLmVsUmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3RpdGxlQ29udGFpbmVyRGlyZWN0aXZlPy5fb2JqZWN0TWFya2VyQ29tcG9uZW50cz8uZm9yRWFjaCgob2JqZWN0TWFya2VyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlcy5wdXNoKG9iamVjdE1hcmtlci5lbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5zdHlsZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgPyBzdHlsZXMuZm9yRWFjaCgoc3R5bGUpID0+IChzdHlsZS5kaXNwbGF5ID0gJ25vbmUnKSlcbiAgICAgICAgICAgICAgICAgICAgOiBzdHlsZXMuZm9yRWFjaCgoc3R5bGUpID0+IChzdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jaycpKTtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZm9ybUl0ZW1Db21wb25lbnQuX2V4dGVuc2lvbiA9IHRoaXMuZXh0ZW5zaW9uO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb3JtSXRlbUNvbXBvbmVudC5maWxlTmFtZSA9IHRoaXMuZmlsZU5hbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZURlbGV0ZUNsaWNrZWRTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fYnV0dG9uR3JvdXBDb21wb25lbnQuZGVsZXRlQ2xpY2tlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVsZXRlQ2xpY2tlZC5lbWl0KHRoaXMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hhbmRsZUZvcm1JdGVtSW5wdXRDaGFuZ2VkU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1JdGVtQ29tcG9uZW50LmZpbGVOYW1lQ2hhbmdlZC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fYnV0dG9uR3JvdXBDb21wb25lbnQuX29rQnV0dG9uLmRpc2FibGVkID0gZXZlbnQgPT09ICcnO1xuICAgICAgICAgICAgICAgIHRoaXMuX2J1dHRvbkdyb3VwQ29tcG9uZW50Ll9va0J1dHRvbi5idWlsZENvbXBvbmVudENzc0NsYXNzKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXRUaXRsZVdpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXRDb250YWluZXJXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGVEaXJlY3RpdmUuZWxSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKlxuICAgICAqIHRydW5jYXRlcyB0aGUgc3RyaW5nIGJ5IGN1dHRpbmcgb3V0IGV4Y2VzcyBsZW5ndGggaW4gdGhlIG1pZGRsZSBhbmQgcmVwbGFjaW5nIHdpdGggJy4uLidcbiAgICAgKi9cbiAgICBwcml2YXRlIHRydW5jYXRlVGl0bGUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjdXRMZW5ndGggPSBNYXRoLmZsb29yKHN0ci5sZW5ndGggKiAwLjgpO1xuXG4gICAgICAgIGlmIChzdHIubGVuZ3RoID4gY3V0TGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBzdHJpbmdMZWZ0SW5kZXggPSBNYXRoLmZsb29yKGN1dExlbmd0aCAvIDIpO1xuICAgICAgICAgICAgY29uc3Qgc3RyaW5nUmlnaHRJbmRleCA9IHN0ci5sZW5ndGggLSBzdHJpbmdMZWZ0SW5kZXggKyAzO1xuICAgICAgICAgICAgcmV0dXJuIHN0ci5zdWJzdHJpbmcoMCwgc3RyaW5nTGVmdEluZGV4KSArICcuLi4gJyArIHN0ci5zdWJzdHJpbmcoc3RyaW5nUmlnaHRJbmRleCwgc3RyLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICpcbiAgICAgKiBkZXRlcm1pbmVzIGlmIGZpbGUgdGl0bGUgbmVlZHMgdG8gYmUgdHJ1bmNhdGVkIGdpdmVuIGNvbnRhaW5lciBjb25zdHJhaW50LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVzaXplRmlsZVRpdGxlKHRpdGxlU3RyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbGV0IGN1clRpdGxlID0gdGl0bGVTdHI7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkdGggPSB0aGlzLmdldENvbnRhaW5lcldpZHRoKCk7XG4gICAgICAgIHRoaXMudGl0bGVXaWR0aCA9IHRoaXMuZ2V0VGl0bGVXaWR0aCgpO1xuXG4gICAgICAgIC8vIHJlcGVhdGVkbHkgdHJ1bmNhdGUgdGhlIHRpdGxlIHVudGlsIGl0IGZpdHMgaW5zaWRlIGNvbnRhaW5lclxuICAgICAgICB3aGlsZSAodGhpcy50aXRsZVdpZHRoICogMS4wNSA+PSB0aGlzLmNvbnRhaW5lcldpZHRoKSB7XG4gICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWRUaXRsZVN0ciA9IHRoaXMudHJ1bmNhdGVUaXRsZShjdXJUaXRsZSk7XG4gICAgICAgICAgICB0aGlzLl90aXRsZURpcmVjdGl2ZS5lbFJlZi5uYXRpdmVFbGVtZW50LmlubmVySFRNTCA9IHRydW5jYXRlZFRpdGxlU3RyO1xuICAgICAgICAgICAgY3VyVGl0bGUgPSB0cnVuY2F0ZWRUaXRsZVN0cjtcbiAgICAgICAgICAgIHRoaXMudGl0bGVXaWR0aCA9IHRoaXMuZ2V0VGl0bGVXaWR0aCgpO1xuICAgICAgICAgICAgdGhpcy5jb250YWluZXJXaWR0aCA9IHRoaXMuZ2V0Q29udGFpbmVyV2lkdGgoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/facets",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/feed-input",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/feed-list-item",
3
- "version": "0.33.3-rc.6",
3
+ "version": "0.33.4-rc.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13,.0.0",
6
6
  "@angular/core": "^13,.0.0"
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, ContentChildren, HostBinding, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChild, ContentChild, NgModule } from '@angular/core';
2
+ import { Directive, ContentChildren, HostBinding, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, EventEmitter, Output, ViewChild, ContentChild, HostListener, NgModule } from '@angular/core';
3
3
  import * as i2 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
5
  import { ObjectMarkerComponent } from '@fundamental-ngx/core/object-marker';
@@ -274,7 +274,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
274
274
  }] } });
275
275
 
276
276
  class UploadCollectionItemDirective {
277
- constructor() {
277
+ constructor(elementRef) {
278
+ this.elementRef = elementRef;
278
279
  /** Event emitted when the user changes a file name. */
279
280
  this.fileNameChanged = new EventEmitter();
280
281
  /** Event emitted when presses the delete button. */
@@ -284,23 +285,52 @@ class UploadCollectionItemDirective {
284
285
  }
285
286
  /** @hidden */
286
287
  ngAfterContentInit() {
287
- this._titleDirective.elRef.nativeElement.innerHTML = this.fileName + '.' + this.extension;
288
+ this.fileNameFull = this.fileName + '.' + this.extension;
289
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
288
290
  this._handleDeleteClickedSubscription();
289
291
  this._handleOkClickedSubscription();
290
292
  this._handleEditClickedSubscription();
291
293
  this._handleFormItemInputChangedSubscription();
292
294
  }
293
295
  /** @hidden */
296
+ ngAfterViewInit() {
297
+ this.onResize();
298
+ }
299
+ /** @hidden */
294
300
  ngOnDestroy() {
295
301
  this._subscriptions.unsubscribe();
296
302
  }
297
303
  /** @hidden */
304
+ onResize() {
305
+ if (!this.elementRef.nativeElement.parentElement) {
306
+ return;
307
+ }
308
+ this.titleWidth = this.getTitleWidth();
309
+ this.containerWidth = this.getContainerWidth();
310
+ // if first load and no previous container width, or if container boundary is resized to smaller than before
311
+ if (!this.previousContainerWidth || this.containerWidth < this.previousContainerWidth) {
312
+ // and the title extends past the container, 1.05x padding to prevent jaggy resizing.
313
+ if (this.titleWidth * 1.05 >= this.containerWidth) {
314
+ this.resizeFileTitle(this._titleDirective.elRef.nativeElement.innerHTML);
315
+ }
316
+ }
317
+ else if (this.previousContainerWidth && this.containerWidth > this.previousContainerWidth) {
318
+ // Looks to expand file title if container width is resized to greater than before
319
+ // reset file title to initial
320
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
321
+ this.resizeFileTitle(this.fileNameFull);
322
+ }
323
+ this.previousContainerWidth = this.containerWidth;
324
+ }
325
+ /** @hidden */
298
326
  _handleOkClickedSubscription() {
299
327
  this._subscriptions.add(this._buttonGroupComponent.okClicked.subscribe(() => {
300
328
  if (this._formItemComponent.fileName && this._formItemComponent.fileName !== '') {
301
329
  this.fileName = this._formItemComponent.fileName;
302
330
  this._titleDirective.elRef.nativeElement.style.display = 'inline-block';
303
- this._titleDirective.elRef.nativeElement.innerHTML = this.fileName + '.' + this.extension;
331
+ this.fileNameFull = this.fileName + '.' + this.extension;
332
+ this._titleDirective.elRef.nativeElement.innerHTML = this.fileNameFull;
333
+ this.resizeFileTitle(this.fileNameFull);
304
334
  this._formItemComponent._editMode = false;
305
335
  this._buttonGroupComponent._editMode = false;
306
336
  this.fileNameChanged.emit(this);
@@ -342,9 +372,49 @@ class UploadCollectionItemDirective {
342
372
  this._buttonGroupComponent._okButton.buildComponentCssClass();
343
373
  }));
344
374
  }
375
+ /** @hidden */
376
+ getTitleWidth() {
377
+ return this._titleDirective.elRef.nativeElement.getBoundingClientRect().width;
378
+ }
379
+ /** @hidden */
380
+ getContainerWidth() {
381
+ return this._titleDirective.elRef.nativeElement.parentElement.getBoundingClientRect().width;
382
+ }
383
+ /**
384
+ * @hidden
385
+ *
386
+ * truncates the string by cutting out excess length in the middle and replacing with '...'
387
+ */
388
+ truncateTitle(str) {
389
+ const cutLength = Math.floor(str.length * 0.8);
390
+ if (str.length > cutLength) {
391
+ const stringLeftIndex = Math.floor(cutLength / 2);
392
+ const stringRightIndex = str.length - stringLeftIndex + 3;
393
+ return str.substring(0, stringLeftIndex) + '... ' + str.substring(stringRightIndex, str.length);
394
+ }
395
+ return str;
396
+ }
397
+ /**
398
+ * @hidden
399
+ *
400
+ * determines if file title needs to be truncated given container constraint.
401
+ */
402
+ resizeFileTitle(titleStr) {
403
+ let curTitle = titleStr;
404
+ this.containerWidth = this.getContainerWidth();
405
+ this.titleWidth = this.getTitleWidth();
406
+ // repeatedly truncate the title until it fits inside container
407
+ while (this.titleWidth * 1.05 >= this.containerWidth) {
408
+ const truncatedTitleStr = this.truncateTitle(curTitle);
409
+ this._titleDirective.elRef.nativeElement.innerHTML = truncatedTitleStr;
410
+ curTitle = truncatedTitleStr;
411
+ this.titleWidth = this.getTitleWidth();
412
+ this.containerWidth = this.getContainerWidth();
413
+ }
414
+ }
345
415
  }
346
- UploadCollectionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
347
- UploadCollectionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: UploadCollectionItemDirective, selector: "[fd-upload-collection-item]", inputs: { fileName: "fileName", extension: "extension" }, outputs: { fileNameChanged: "fileNameChanged", deleteClicked: "deleteClicked" }, host: { classAttribute: "fd-upload-collection__item" }, queries: [{ propertyName: "_formItemComponent", first: true, predicate: UploadCollectionFormItemComponent, descendants: true }, { propertyName: "_titleDirective", first: true, predicate: UploadCollectionTitleDirective, descendants: true }, { propertyName: "_buttonGroupComponent", first: true, predicate: UploadCollectionButtonGroupComponent, descendants: true }, { propertyName: "_titleContainerDirective", first: true, predicate: UploadCollectionTitleContainerDirective, descendants: true }], ngImport: i0 });
416
+ UploadCollectionItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
417
+ UploadCollectionItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.2", type: UploadCollectionItemDirective, selector: "[fd-upload-collection-item]", inputs: { fileName: "fileName", extension: "extension" }, outputs: { fileNameChanged: "fileNameChanged", deleteClicked: "deleteClicked" }, host: { listeners: { "window:resize": "onResize()" }, classAttribute: "fd-upload-collection__item" }, queries: [{ propertyName: "_formItemComponent", first: true, predicate: UploadCollectionFormItemComponent, descendants: true }, { propertyName: "_titleDirective", first: true, predicate: UploadCollectionTitleDirective, descendants: true }, { propertyName: "_buttonGroupComponent", first: true, predicate: UploadCollectionButtonGroupComponent, descendants: true }, { propertyName: "_titleContainerDirective", first: true, predicate: UploadCollectionTitleContainerDirective, descendants: true }], ngImport: i0 });
348
418
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImport: i0, type: UploadCollectionItemDirective, decorators: [{
349
419
  type: Directive,
350
420
  args: [{
@@ -352,7 +422,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
352
422
  selector: '[fd-upload-collection-item]',
353
423
  host: { class: 'fd-upload-collection__item' }
354
424
  }]
355
- }], propDecorators: { fileName: [{
425
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fileName: [{
356
426
  type: Input
357
427
  }], extension: [{
358
428
  type: Input
@@ -372,6 +442,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.2", ngImpor
372
442
  type: Output
373
443
  }], deleteClicked: [{
374
444
  type: Output
445
+ }], onResize: [{
446
+ type: HostListener,
447
+ args: ['window:resize', []]
375
448
  }] } });
376
449
 
377
450
  class UploadCollectionModule {