asksuite-citrus 0.3.0 → 0.3.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.
@@ -71,6 +71,7 @@ export class AutocompleteComponent {
|
|
71
71
|
this.selectedOption = item;
|
72
72
|
this.onChange(this.selectedOption);
|
73
73
|
this.hideOptions();
|
74
|
+
this.change.detectChanges();
|
74
75
|
}
|
75
76
|
handleAutocompleteClick() {
|
76
77
|
this.closed
|
@@ -125,6 +126,11 @@ export class AutocompleteComponent {
|
|
125
126
|
this.selectAllOptions(checked);
|
126
127
|
}
|
127
128
|
selectAllOptions(selected) {
|
129
|
+
this.options.forEach(option => {
|
130
|
+
if (this.selectionForm.value[option[this.valueProp]] === undefined) {
|
131
|
+
this.selectionForm.addControl(option[this.valueProp], this.formBuilder.control(selected), { emitEvent: false });
|
132
|
+
}
|
133
|
+
});
|
128
134
|
const newValues = Object.keys(this.selectionForm.controls)
|
129
135
|
.reduce((acc, curr) => {
|
130
136
|
acc[curr] = selected;
|
@@ -165,20 +171,20 @@ export class AutocompleteComponent {
|
|
165
171
|
}
|
166
172
|
// Control Value Accessor
|
167
173
|
writeValue(obj) {
|
168
|
-
if (!obj || !obj.length) {
|
174
|
+
if (!obj || (Array.isArray(obj) && !obj.length) && this.selectAll) {
|
169
175
|
this.selectAllOptions(this.selectAll);
|
170
176
|
return;
|
171
177
|
}
|
172
|
-
if (this.multiple) {
|
178
|
+
if (this.multiple && Array.isArray(obj)) {
|
173
179
|
obj.forEach((item) => {
|
174
180
|
this.selectionForm.addControl(item[this.valueProp], this.formBuilder.control(true), { emitEvent: false });
|
175
181
|
});
|
176
182
|
this.selectionForm.updateValueAndValidity();
|
177
|
-
this.change.detectChanges();
|
178
183
|
}
|
179
184
|
else {
|
180
185
|
this.selectedOption = obj;
|
181
186
|
}
|
187
|
+
this.change.detectChanges();
|
182
188
|
}
|
183
189
|
registerOnChange(fn) {
|
184
190
|
this.onChange = fn;
|
@@ -190,11 +196,11 @@ export class AutocompleteComponent {
|
|
190
196
|
this.disabled = isDisabled;
|
191
197
|
}
|
192
198
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1.FormBuilder }, { token: i2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
193
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: i6.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
199
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i5.ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: i6.CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
194
200
|
}
|
195
201
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
196
202
|
type: Component,
|
197
|
-
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
203
|
+
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
198
204
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
199
205
|
type: ViewChild,
|
200
206
|
args: ["autocomplete"]
|
@@ -227,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
|
|
227
233
|
type: HostListener,
|
228
234
|
args: ["window:mousedown", ['$event']]
|
229
235
|
}] } });
|
230
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUFnRGhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFT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QUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNTLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCO2dCQW9CM0IsUUFBUTtzQkFEUCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLE9BQU87c0JBRE4sS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkEwRk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgUHJvdmlkZXIsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCB0YXB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge092ZXJsYXksIE92ZXJsYXlSZWZ9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3BcIjtcblxuY29uc3QgdmFsdWVBY2Nlc3NvcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBtdWx0aTogdHJ1ZSxcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXNrLWF1dG9jb21wbGV0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbdmFsdWVBY2Nlc3Nvcl0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICBAVmlld0NoaWxkKFwiYXV0b2NvbXBsZXRlXCIpIGlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoXCJsaXN0XCIpIGxpc3Q6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKCdvdmVybGF5Q29udGVudCcpIG92ZXJsYXlDb250ZW50OiBUZW1wbGF0ZVJlZjxhbnk+IHwgdW5kZWZpbmVkXG5cbiAgcHJvdGVjdGVkIGlucHV0Q29udHJvbCA9IG5ldyBGb3JtQ29udHJvbChcIlwiKVxuICBwcm90ZWN0ZWQgZmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgcGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb24/OiBhbnk7XG4gIHByb3RlY3RlZCBjbG9zZWQgPSB0cnVlO1xuICBwcm90ZWN0ZWQgc2VsZWN0aW9uRm9ybTogRm9ybUdyb3VwXG4gIHByb3RlY3RlZCBjaGlwc0NvbGxhcHNlZCA9IHRydWVcbiAgcHJvdGVjdGVkIGNoZWNrQWxsVmFsdWUgPSBmYWxzZVxuICBwcm90ZWN0ZWQgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9wb3J0YWw6IFRlbXBsYXRlUG9ydGFsPGFueT4gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2Rlc3Ryb3kgPSBpbmplY3QoRGVzdHJveVJlZilcbiAgcHJpdmF0ZSByZWFkb25seSBJVEVNU19QRVJfUEFHRSA9IDQwXG4gIHByaXZhdGUgX3BhZ2VOdW1iZXIgPSAxXG4gIHByaXZhdGUgX3JlYWNoZWRFbmQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBmaWx0ZXJGbj86IChpdGVtOiBzdHJpbmcpID0+IGFueVtdO1xuXG4gIEBJbnB1dCgpXG4gIGRpc3BsYXlGbj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcblxuICBASW5wdXQoKVxuICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlUHJvcDogc3RyaW5nID0gJydcblxuICBASW5wdXQoKVxuICBvcHRpb25zOiBhbnlbXSA9IFtdXG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXIgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIGVtcHR5TWVzc2FnZSA9ICdOZW5odW1hIG9ww6fDo28nO1xuXG4gIEBJbnB1dCgpXG4gIHNlbGVjdEFsbCA9IGZhbHNlXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgICAgICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICBwcml2YXRlIGNoYW5nZTogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0gPSBmb3JtQnVpbGRlci5ncm91cCh7fSlcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKCk7XG5cbiAgICB0aGlzLmhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpO1xuXG4gICAgdGhpcy5jaGVja0FsbFZhbHVlID0gdGhpcy5zZWxlY3RBbGw7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUlucHV0Q2hhbmdlKCkge1xuICAgIHRoaXMuaW5wdXRDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLFxuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgPSAxXG4gICAgICAgIHRoaXMuX3JlYWNoZWRFbmQgPSBmYWxzZVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFtdXG4gICAgICB9KSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLmZpbHRlckZuID8gdGhpcy5maWx0ZXJGbih2YWx1ZSB8fCAnJykgOiBbXSlcbiAgICApLnN1YnNjcmliZShpdGVtcyA9PiB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IGl0ZW1zXG4gICAgICB0aGlzLmdldE1vcmVJdGVtcygwKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSgpIHtcbiAgICB0aGlzLnNlbGVjdGlvbkZvcm1cbiAgICAgIC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95KSwgZGVib3VuY2VUaW1lKDEwMCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZXM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufSkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSBPYmplY3Qua2V5cyh2YWx1ZXMpLmV2ZXJ5KHZhbHVlID0+IHZhbHVlc1t2YWx1ZV0pXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gdmFsdWVzW29wdGlvblt0aGlzLnZhbHVlUHJvcF1dKSlcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKVxuICAgICAgfSlcbiAgfVxuXG4gIGhhbmRsZU9wdGlvblNlbGVjdGVkKGl0ZW06IGFueSkge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBpdGVtO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZE9wdGlvbilcbiAgICB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VkXG4gICAgICA/IHRoaXMuc2hvd09wdGlvbnMoKVxuICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2VcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy53cmFwcGVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMud3JhcHBlcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcod3JhcHBlcjogRWxlbWVudFJlZikge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiB3cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptb3VzZWRvd25cIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW2l0ZW1bdGhpcy52YWx1ZVByb3BdXSlcblxuICAgIHJldHVybiB0aGlzLmNoaXBzQ29sbGFwc2VkXG4gICAgICA/IHNlbGVjdGVkLnNsaWNlKDAsIDEpXG4gICAgICA6IHNlbGVjdGVkO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5jaGVja2VkXG5cbiAgICB0aGlzLnNlbGVjdEFsbE9wdGlvbnMoY2hlY2tlZCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgY29uc3QgbmV3VmFsdWVzID0gT2JqZWN0LmtleXModGhpcy5zZWxlY3Rpb25Gb3JtLmNvbnRyb2xzKVxuICAgICAgLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiB7XG4gICAgICAgIGFjY1tjdXJyXSA9IHNlbGVjdGVkXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSBhcyB7W2tleTogc3RyaW5nXTogYm9vbGVhbn0pXG5cbiAgICB0aGlzLnNlbGVjdGlvbkZvcm0ucGF0Y2hWYWx1ZShuZXdWYWx1ZXMpXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBoYW5kbGVDaGlwQWN0aW9uKG9wdGlvbjogYW55KSB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5nZXQob3B0aW9uW3RoaXMudmFsdWVQcm9wXSk/LnNldFZhbHVlKGZhbHNlKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gbnVsbDtcbiAgICB9XG5cbiAgfVxuXG4gIGRpc3BsYXkob3B0aW9uOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5kaXNwbGF5Rm4gJiYgdGhpcy5kaXNwbGF5Rm4ob3B0aW9uKVxuICB9XG5cbiAgZ2V0TW9yZUl0ZW1zKHNjcm9sbEluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuX3JlYWNoZWRFbmQgJiYgKCF0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGhcbiAgICAgIHx8ICgoc2Nyb2xsSW5kZXggKyA1KSA+PSAodGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSB8fCAxKSkpKSkge1xuICAgICAgY29uc3QgbmV4dFBhZ2VJdGVtcyA9IHRoaXMuZmlsdGVyZWRPcHRpb25zLnNsaWNlKFxuICAgICAgICB0aGlzLklURU1TX1BFUl9QQUdFICogKHRoaXMuX3BhZ2VOdW1iZXIgLSAxKSxcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqIHRoaXMuX3BhZ2VOdW1iZXIpO1xuICAgICAgaWYgKG5leHRQYWdlSXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIG5leHRQYWdlSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uRm9ybS52YWx1ZVtpdGVtW3RoaXMudmFsdWVQcm9wXV0pIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICBpdGVtW3RoaXMudmFsdWVQcm9wXSxcbiAgICAgICAgICAgICAgdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHRoaXMuY2hlY2tBbGxWYWx1ZSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gWy4uLnRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zLCAuLi5uZXh0UGFnZUl0ZW1zXTtcbiAgICAgICAgdGhpcy5fcGFnZU51bWJlciArPSAxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9yZWFjaGVkRW5kID0gdHJ1ZVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIENvbnRyb2wgVmFsdWUgQWNjZXNzb3JcblxuICB3cml0ZVZhbHVlKG9iajogYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIW9iaiB8fCAhb2JqLmxlbmd0aCkge1xuICAgICAgdGhpcy5zZWxlY3RBbGxPcHRpb25zKHRoaXMuc2VsZWN0QWxsKVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBvYmouZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICBpdGVtW3RoaXMudmFsdWVQcm9wXSxcbiAgICAgICAgICB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2wodHJ1ZSksXG4gICAgICAgICAge2VtaXRFdmVudDogZmFsc2V9KVxuICAgICAgfSlcbiAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICB0aGlzLmNoYW5nZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvYmpcbiAgICB9XG4gIH1cblxuICBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgb25Ub3VjaGVkID0gKCkgPT4ge31cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImF1dG9jb21wbGV0ZS13cmFwcGVyXCJcbiAgICAgW2NsYXNzLi1jbG9zZWRdPVwiY2xvc2VkXCJcbiAgICAgW2NsYXNzLi1vcGVuZWRdPVwiIWNsb3NlZFwiXG4gICAgICN3cmFwcGVyXG4+XG4gIDxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGVcIiAjYXV0b2NvbXBsZXRlPlxuICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1maWVsZFwiXG4gICAgICAgICAgICpuZ0lmPVwiIWNsb3NlZDsgZWxzZSBzZWxlY3Rpb25PclBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImlucHV0Q29udHJvbFwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiLz5cbiAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGlvbk9yUGxhY2Vob2xkZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCAmJiBjbG9zZWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtbGlzdFwiIFtjbGFzcy4tY29sbGFwc2VkXT1cImNoaXBzQ29sbGFwc2VkXCI+XG4gICAgICAgICAgPGFzay1jaGlwcyBbc3R5bGUubWF4LXdpZHRoXT1cImNoaXBzQ29sbGFwc2VkID8gJzc1JScgOiAnMTAwJSdcIlxuICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgKGFjdGlvbik9XCJoYW5kbGVDaGlwQWN0aW9uKG9wdGlvbilcIj5cbiAgICAgICAgICAgIHt7ZGlzcGxheShvcHRpb24pfX1cbiAgICAgICAgICA8L2Fzay1jaGlwcz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImV4cGFuZFwiICpuZ0lmPVwibXVsdGlwbGVcIiAoY2xpY2spPVwiY2hpcHNDb2xsYXBzZWQgPSAhY2hpcHNDb2xsYXBzZWRcIj5cbiAgICAgICAgICAgIHt7Y2hpcHNDb2xsYXBzZWQgPyAnVmVyIG1haXMnIDogJ1ZlciBtZW5vcyd9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2xvc2VkICYmICFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+e3twbGFjZWhvbGRlcn19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwiIWRpc2FibGVkICYmIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKClcIj57e2Nsb3NlZCA/IFwiZXhwYW5kX21vcmVcIiA6IFwiZXhwYW5kX2xlc3NcIn19PC9zcGFuPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI292ZXJsYXlDb250ZW50PlxuICA8ZGl2ICNsaXN0IGNsYXNzPVwibWVudS1jb250YWluZXJcIiBbY2xhc3MuLW11bHRpcGxlXT1cIm11bHRpcGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aXBsZTsgZWxzZSBtdWx0aXBsZVNlbGVjdGlvblwiPlxuICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiMzZcIiBjbGFzcz1cImxpc3RcIiAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJnZXRNb3JlSXRlbXMoJGV2ZW50KVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIlxuICAgICAgICAgICAgICAgW2NsYXNzLi1oaWdobGlnaHRlZF09XCJzZWxlY3RlZE9wdGlvbiAmJiBzZWxlY3RlZE9wdGlvblt2YWx1ZVByb3BdID09PSBvcHRpb25bdmFsdWVQcm9wXVwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlT3B0aW9uU2VsZWN0ZWQob3B0aW9uKVwiPlxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3tkaXNwbGF5KG9wdGlvbil9fTwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI211bHRpcGxlU2VsZWN0aW9uPlxuICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCIgKm5nSWY9XCJwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoICYmIHNlbGVjdEFsbFwiPlxuICAgICAgICA8YXNrLWNoZWNrYm94IChjaGFuZ2UpPVwiaGFuZGxlU2VsZWN0QWxsKCRldmVudClcIiBbKG5nTW9kZWwpXT1cImNoZWNrQWxsVmFsdWVcIj5TZWxlY2lvbmFyIHRvZGFzPC9hc2stY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxmb3JtICpuZ0lmPVwic2VsZWN0aW9uRm9ybS5jb250cm9sc1wiIFtmb3JtR3JvdXBdPVwic2VsZWN0aW9uRm9ybVwiPlxuICAgICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCIzNlwiIGNsYXNzPVwibGlzdC1ib3hcIiAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJnZXRNb3JlSXRlbXMoJGV2ZW50KVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIDxhc2stY2hlY2tib3ggW2Zvcm1Db250cm9sTmFtZV09XCJvcHRpb25bdmFsdWVQcm9wXVwiPnt7ZGlzcGxheShvcHRpb24pfX08L2Fzay1jaGVja2JveD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICAgIDwvZm9ybT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxzcGFuIGNsYXNzPVwiZW1wdHlcIiAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCI+e3tlbXB0eU1lc3NhZ2V9fTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fza3N1aXRlLWNpdHJ1cy9zcmMvbGliL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc2tzdWl0ZS1jaXRydXMvc3JjL2xpYi9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUVWLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFvQyxXQUFXLEVBQWEsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRXZELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7QUFFOUQsTUFBTSxhQUFhLEdBQWE7SUFDOUIsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixLQUFLLEVBQUUsSUFBSTtJQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7Q0FDckQsQ0FBQTtBQVNELE1BQU0sT0FBTyxxQkFBcUI7SUFnRGhDLFlBQW9CLFdBQXdCLEVBQ3hCLE9BQWdCLEVBQ2hCLGdCQUFrQyxFQUNsQyxNQUF5QjtRQUh6QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFT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O1NBQzFCO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBSUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzs4R0FoUVUscUJBQXFCO2tHQUFyQixxQkFBcUIsNlRBSHJCLENBQUMsYUFBYSxDQUFDLHdZQy9CNUIsNmhHQThEQTs7MkZENUJhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxrQkFBa0IsYUFHakIsQ0FBQyxhQUFhLENBQUMsbUJBQ1QsdUJBQXVCLENBQUMsTUFBTTt1TEFJcEIsS0FBSztzQkFBL0IsU0FBUzt1QkFBQyxjQUFjO2dCQUNOLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDSyxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1MsY0FBYztzQkFBMUMsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBb0IzQixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sT0FBTztzQkFETixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQTJGTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBQcm92aWRlcixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgbWFwLCBzdGFydFdpdGgsIHRhcH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVJlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQge1RlbXBsYXRlUG9ydGFsfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gXCJAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcFwiO1xuXG5jb25zdCB2YWx1ZUFjY2Vzc29yOiBQcm92aWRlciA9IHtcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gIG11bHRpOiB0cnVlLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhc2stYXV0b2NvbXBsZXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2F1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt2YWx1ZUFjY2Vzc29yXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gIEBWaWV3Q2hpbGQoXCJhdXRvY29tcGxldGVcIikgaW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWRcbiAgQFZpZXdDaGlsZChcImxpc3RcIikgbGlzdDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZFxuICBAVmlld0NoaWxkKFwid3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkXG4gIEBWaWV3Q2hpbGQoJ292ZXJsYXlDb250ZW50Jykgb3ZlcmxheUNvbnRlbnQ6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWRcblxuICBwcm90ZWN0ZWQgaW5wdXRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKFwiXCIpXG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnM6IGFueVtdID0gW107XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbj86IGFueTtcbiAgcHJvdGVjdGVkIGNsb3NlZCA9IHRydWU7XG4gIHByb3RlY3RlZCBzZWxlY3Rpb25Gb3JtOiBGb3JtR3JvdXBcbiAgcHJvdGVjdGVkIGNoaXBzQ29sbGFwc2VkID0gdHJ1ZVxuICBwcm90ZWN0ZWQgY2hlY2tBbGxWYWx1ZSA9IGZhbHNlXG4gIHByb3RlY3RlZCBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX3BvcnRhbDogVGVtcGxhdGVQb3J0YWw8YW55PiB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBfZGVzdHJveSA9IGluamVjdChEZXN0cm95UmVmKVxuICBwcml2YXRlIHJlYWRvbmx5IElURU1TX1BFUl9QQUdFID0gNDBcbiAgcHJpdmF0ZSBfcGFnZU51bWJlciA9IDFcbiAgcHJpdmF0ZSBfcmVhY2hlZEVuZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlckZuPzogKGl0ZW06IHN0cmluZykgPT4gYW55W107XG5cbiAgQElucHV0KClcbiAgZGlzcGxheUZuPzogKGl0ZW06IGFueSkgPT4gc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgdmFsdWVQcm9wOiBzdHJpbmcgPSAnJ1xuXG4gIEBJbnB1dCgpXG4gIG9wdGlvbnM6IGFueVtdID0gW11cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlciA9ICcnXG5cbiAgQElucHV0KClcbiAgZW1wdHlNZXNzYWdlID0gJ05lbmh1bWEgb3DDp8Ojbyc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0QWxsID0gZmFsc2VcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgICAgICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgY2hhbmdlOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMuc2VsZWN0aW9uRm9ybSA9IGZvcm1CdWlsZGVyLmdyb3VwKHt9KVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoKTtcblxuICAgIHRoaXMuaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCk7XG5cbiAgICB0aGlzLmNoZWNrQWxsVmFsdWUgPSB0aGlzLnNlbGVjdEFsbDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlSW5wdXRDaGFuZ2UoKSB7XG4gICAgdGhpcy5pbnB1dENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveSksXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcGFnZU51bWJlciA9IDFcbiAgICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IGZhbHNlXG4gICAgICAgIHRoaXMucGFnaW5hdGVkRmlsdGVyZWRPcHRpb25zID0gW11cbiAgICAgIH0pLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuZmlsdGVyRm4gPyB0aGlzLmZpbHRlckZuKHZhbHVlIHx8ICcnKSA6IFtdKVxuICAgICkuc3Vic2NyaWJlKGl0ZW1zID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gaXRlbXNcbiAgICAgIHRoaXMuZ2V0TW9yZUl0ZW1zKDApXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKCkge1xuICAgIHRoaXMuc2VsZWN0aW9uRm9ybVxuICAgICAgLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3kpLCBkZWJvdW5jZVRpbWUoMTAwKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59KSA9PiB7XG4gICAgICAgIHRoaXMuY2hlY2tBbGxWYWx1ZSA9IE9iamVjdC5rZXlzKHZhbHVlcykuZXZlcnkodmFsdWUgPT4gdmFsdWVzW3ZhbHVlXSlcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLm9wdGlvbnMuZmlsdGVyKG9wdGlvbiA9PiB2YWx1ZXNbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0pKVxuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlT3B0aW9uU2VsZWN0ZWQoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IGl0ZW07XG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnNlbGVjdGVkT3B0aW9uKVxuICAgIHRoaXMuaGlkZU9wdGlvbnMoKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGhhbmRsZUF1dG9jb21wbGV0ZUNsaWNrKCkge1xuICAgIHRoaXMuY2xvc2VkXG4gICAgICA/IHRoaXMuc2hvd09wdGlvbnMoKVxuICAgICAgOiB0aGlzLmhpZGVPcHRpb25zKClcbiAgfVxuXG4gIHNob3dPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gZmFsc2VcbiAgICBpZiAoIXRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy53cmFwcGVyKSB7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmID0gdGhpcy5nZXRPdmVybGF5Q29uZmlnKHRoaXMud3JhcHBlcilcblxuICAgICAgdGhpcy5fcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKHRoaXMub3ZlcmxheUNvbnRlbnQhLCB0aGlzLnZpZXdDb250YWluZXJSZWYpXG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uYXR0YWNoKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBwcml2YXRlIGdldE92ZXJsYXlDb25maWcod3JhcHBlcjogRWxlbWVudFJlZikge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHdpZHRoOiB3cmFwcGVyLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh3cmFwcGVyLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgIC53aXRoUG9zaXRpb25zKFt7XG4gICAgICAgICAgb3JpZ2luWDogXCJzdGFydFwiLFxuICAgICAgICAgIG9yaWdpblk6IFwiYm90dG9tXCIsXG4gICAgICAgICAgb3ZlcmxheVg6IFwic3RhcnRcIixcbiAgICAgICAgICBvdmVybGF5WTogXCJ0b3BcIlxuICAgICAgICB9XSlcbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVPcHRpb25zKCkge1xuICAgIHRoaXMuY2xvc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNoaXBzQ29sbGFwc2VkID0gdHJ1ZTtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKVxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcIndpbmRvdzptb3VzZWRvd25cIiwgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jbG9zZWRcbiAgICAgICYmICF0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcbiAgICAgICYmICF0aGlzLmxpc3Q/Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xuICAgICAgdGhpcy5oaWRlT3B0aW9ucygpXG4gICAgfVxuICB9XG5cbiAgZ2V0IHNlbGVjdGVkT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlKSByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IFt0aGlzLnNlbGVjdGVkT3B0aW9uXSA6IFtdXG5cbiAgICBjb25zdCBzZWxlY3RlZCA9IHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gdGhpcy5zZWxlY3Rpb25Gb3JtLnZhbHVlW2l0ZW1bdGhpcy52YWx1ZVByb3BdXSlcblxuICAgIHJldHVybiB0aGlzLmNoaXBzQ29sbGFwc2VkXG4gICAgICA/IHNlbGVjdGVkLnNsaWNlKDAsIDEpXG4gICAgICA6IHNlbGVjdGVkO1xuICB9XG5cbiAgaGFuZGxlU2VsZWN0QWxsKGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSAoPEhUTUxJbnB1dEVsZW1lbnQ+ZXZlbnQudGFyZ2V0KS5jaGVja2VkXG5cbiAgICB0aGlzLnNlbGVjdEFsbE9wdGlvbnMoY2hlY2tlZCk7XG4gIH1cblxuICBzZWxlY3RBbGxPcHRpb25zKHNlbGVjdGVkOiBib29sZWFuKSB7XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2gob3B0aW9uID0+IHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbb3B0aW9uW3RoaXMudmFsdWVQcm9wXV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICBvcHRpb25bdGhpcy52YWx1ZVByb3BdLFxuICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbChzZWxlY3RlZCksXG4gICAgICAgICAge2VtaXRFdmVudDogZmFsc2V9XG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9KVxuICAgIGNvbnN0IG5ld1ZhbHVlcyA9IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0aW9uRm9ybS5jb250cm9scylcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vycl0gPSBzZWxlY3RlZFxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30gYXMge1trZXk6IHN0cmluZ106IGJvb2xlYW59KVxuXG4gICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnBhdGNoVmFsdWUobmV3VmFsdWVzKVxuICAgIHRoaXMuc2VsZWN0aW9uRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jaGFuZ2UuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgaGFuZGxlQ2hpcEFjdGlvbihvcHRpb246IGFueSkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uZ2V0KG9wdGlvblt0aGlzLnZhbHVlUHJvcF0pPy5zZXRWYWx1ZShmYWxzZSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XG4gICAgfVxuXG4gIH1cblxuICBkaXNwbGF5KG9wdGlvbjogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcGxheUZuICYmIHRoaXMuZGlzcGxheUZuKG9wdGlvbilcbiAgfVxuXG4gIGdldE1vcmVJdGVtcyhzY3JvbGxJbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLl9yZWFjaGVkRW5kICYmICghdGhpcy5wYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXG4gICAgICB8fCAoKHNjcm9sbEluZGV4ICsgNSkgPj0gKHRoaXMuSVRFTVNfUEVSX1BBR0UgKiAodGhpcy5fcGFnZU51bWJlciAtIDEgfHwgMSkpKSkpIHtcbiAgICAgIGNvbnN0IG5leHRQYWdlSXRlbXMgPSB0aGlzLmZpbHRlcmVkT3B0aW9ucy5zbGljZShcbiAgICAgICAgdGhpcy5JVEVNU19QRVJfUEFHRSAqICh0aGlzLl9wYWdlTnVtYmVyIC0gMSksXG4gICAgICAgIHRoaXMuSVRFTVNfUEVSX1BBR0UgKiB0aGlzLl9wYWdlTnVtYmVyKTtcbiAgICAgIGlmIChuZXh0UGFnZUl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBuZXh0UGFnZUl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKCF0aGlzLnNlbGVjdGlvbkZvcm0udmFsdWVbaXRlbVt0aGlzLnZhbHVlUHJvcF1dKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbkZvcm0uYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgaXRlbVt0aGlzLnZhbHVlUHJvcF0sXG4gICAgICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0aGlzLmNoZWNrQWxsVmFsdWUpXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICB0aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucyA9IFsuLi50aGlzLnBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucywgLi4ubmV4dFBhZ2VJdGVtc107XG4gICAgICAgIHRoaXMuX3BhZ2VOdW1iZXIgKz0gMVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5fcmVhY2hlZEVuZCA9IHRydWVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBDb250cm9sIFZhbHVlIEFjY2Vzc29yXG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueVtdIHwgYW55KTogdm9pZCB7XG4gICAgaWYgKCFvYmogfHwgKEFycmF5LmlzQXJyYXkob2JqKSAmJiAhb2JqLmxlbmd0aCkgJiYgdGhpcy5zZWxlY3RBbGwpIHtcbiAgICAgIHRoaXMuc2VsZWN0QWxsT3B0aW9ucyh0aGlzLnNlbGVjdEFsbClcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgIG9iai5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uRm9ybS5hZGRDb250cm9sKFxuICAgICAgICAgIGl0ZW1bdGhpcy52YWx1ZVByb3BdLFxuICAgICAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh0cnVlKSxcbiAgICAgICAgICB7ZW1pdEV2ZW50OiBmYWxzZX0pXG4gICAgICB9KVxuICAgICAgdGhpcy5zZWxlY3Rpb25Gb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiA9IG9ialxuICAgIH1cblxuICAgIHRoaXMuY2hhbmdlLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge31cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhdXRvY29tcGxldGUtd3JhcHBlclwiXG4gICAgIFtjbGFzcy4tY2xvc2VkXT1cImNsb3NlZFwiXG4gICAgIFtjbGFzcy4tb3BlbmVkXT1cIiFjbG9zZWRcIlxuICAgICAjd3JhcHBlclxuPlxuICA8ZGl2IGNsYXNzPVwiYXV0b2NvbXBsZXRlXCIgI2F1dG9jb21wbGV0ZT5cbiAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtZmllbGRcIlxuICAgICAgICAgICAqbmdJZj1cIiFjbG9zZWQ7IGVsc2Ugc2VsZWN0aW9uT3JQbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJpbnB1dENvbnRyb2xcIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIi8+XG4gICAgPG5nLXRlbXBsYXRlICNzZWxlY3Rpb25PclBsYWNlaG9sZGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggJiYgY2xvc2VkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWxpc3RcIiBbY2xhc3MuLWNvbGxhcHNlZF09XCJjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAgICAgIDxhc2stY2hpcHMgW3N0eWxlLm1heC13aWR0aF09XCJjaGlwc0NvbGxhcHNlZCA/ICc3NSUnIDogJzEwMCUnXCJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygc2VsZWN0ZWRPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24pPVwiaGFuZGxlQ2hpcEFjdGlvbihvcHRpb24pXCI+XG4gICAgICAgICAgICB7e2Rpc3BsYXkob3B0aW9uKX19XG4gICAgICAgICAgPC9hc2stY2hpcHM+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJleHBhbmRcIiBkYXRhLXRlc3RpZD1cInNlZS1tb3JlXCIgKm5nSWY9XCJtdWx0aXBsZVwiIChjbGljayk9XCJjaGlwc0NvbGxhcHNlZCA9ICFjaGlwc0NvbGxhcHNlZFwiPlxuICAgICAgICAgICAge3tjaGlwc0NvbGxhcHNlZCA/ICdWZXIgbWFpcycgOiAnVmVyIG1lbm9zJ319XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHNwYW4gZGF0YS10ZXN0aWQ9XCJwbGFjZWhvbGRlclwiICpuZ0lmPVwiY2xvc2VkICYmICFzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCI+e3twbGFjZWhvbGRlcn19PC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPHNwYW4gY2xhc3M9XCJidG4tZXhwYW5kIG1hdGVyaWFsLWljb25zXCJcbiAgICAgICAgICBkYXRhLXRlc3RpZD1cImJ0bi1leHBhbmRcIlxuICAgICAgICAgIFtjbGFzcy4tZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgIChjbGljayk9XCIhZGlzYWJsZWQgJiYgaGFuZGxlQXV0b2NvbXBsZXRlQ2xpY2soKVwiPnt7Y2xvc2VkID8gXCJleHBhbmRfbW9yZVwiIDogXCJleHBhbmRfbGVzc1wifX08L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjb3ZlcmxheUNvbnRlbnQ+XG4gIDxkaXYgI2xpc3QgY2xhc3M9XCJtZW51LWNvbnRhaW5lclwiIFtjbGFzcy4tbXVsdGlwbGVdPVwibXVsdGlwbGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpcGxlOyBlbHNlIG11bHRpcGxlU2VsZWN0aW9uXCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0IFtpdGVtU2l6ZV09XCIzNlwiIGNsYXNzPVwibGlzdFwiIChzY3JvbGxlZEluZGV4Q2hhbmdlKT1cImdldE1vcmVJdGVtcygkZXZlbnQpXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKmNka1ZpcnR1YWxGb3I9XCJsZXQgb3B0aW9uIG9mIHBhZ2luYXRlZEZpbHRlcmVkT3B0aW9uc1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiXG4gICAgICAgICAgICAgICBbY2xhc3MuLWhpZ2hsaWdodGVkXT1cInNlbGVjdGVkT3B0aW9uICYmIHNlbGVjdGVkT3B0aW9uW3ZhbHVlUHJvcF0gPT09IG9wdGlvblt2YWx1ZVByb3BdXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVPcHRpb25TZWxlY3RlZChvcHRpb24pXCI+XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHRcIj57e2Rpc3BsYXkob3B0aW9uKX19PC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvY2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjbXVsdGlwbGVTZWxlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdJZj1cInBhZ2luYXRlZEZpbHRlcmVkT3B0aW9ucy5sZW5ndGggJiYgc2VsZWN0QWxsXCI+XG4gICAgICAgIDxhc2stY2hlY2tib3ggKGNoYW5nZSk9XCJoYW5kbGVTZWxlY3RBbGwoJGV2ZW50KVwiIFsobmdNb2RlbCldPVwiY2hlY2tBbGxWYWx1ZVwiPlNlbGVjaW9uYXIgdG9kYXM8L2Fzay1jaGVja2JveD5cbiAgICAgIDwvZGl2PlxuICAgICAgPGZvcm0gZGF0YS10ZXN0aWQ9XCJvcHRpb25zLWZvcm1cIiAqbmdJZj1cInNlbGVjdGlvbkZvcm0uY29udHJvbHNcIiBbZm9ybUdyb3VwXT1cInNlbGVjdGlvbkZvcm1cIj5cbiAgICAgICAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydCBbaXRlbVNpemVdPVwiMzZcIiBjbGFzcz1cImxpc3QtYm94XCIgKHNjcm9sbGVkSW5kZXhDaGFuZ2UpPVwiZ2V0TW9yZUl0ZW1zKCRldmVudClcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpjZGtWaXJ0dWFsRm9yPVwibGV0IG9wdGlvbiBvZiBwYWdpbmF0ZWRGaWx0ZXJlZE9wdGlvbnNcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24taXRlbVwiPlxuICAgICAgICAgICAgICA8YXNrLWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwib3B0aW9uW3ZhbHVlUHJvcF1cIj57e2Rpc3BsYXkob3B0aW9uKX19PC9hc2stY2hlY2tib3g+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9jZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnQ+XG4gICAgICA8L2Zvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8c3BhbiBjbGFzcz1cImVtcHR5XCIgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiPnt7ZW1wdHlNZXNzYWdlfX08L3NwYW4+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
@@ -531,6 +531,7 @@ class AutocompleteComponent {
|
|
531
531
|
this.selectedOption = item;
|
532
532
|
this.onChange(this.selectedOption);
|
533
533
|
this.hideOptions();
|
534
|
+
this.change.detectChanges();
|
534
535
|
}
|
535
536
|
handleAutocompleteClick() {
|
536
537
|
this.closed
|
@@ -585,6 +586,11 @@ class AutocompleteComponent {
|
|
585
586
|
this.selectAllOptions(checked);
|
586
587
|
}
|
587
588
|
selectAllOptions(selected) {
|
589
|
+
this.options.forEach(option => {
|
590
|
+
if (this.selectionForm.value[option[this.valueProp]] === undefined) {
|
591
|
+
this.selectionForm.addControl(option[this.valueProp], this.formBuilder.control(selected), { emitEvent: false });
|
592
|
+
}
|
593
|
+
});
|
588
594
|
const newValues = Object.keys(this.selectionForm.controls)
|
589
595
|
.reduce((acc, curr) => {
|
590
596
|
acc[curr] = selected;
|
@@ -625,20 +631,20 @@ class AutocompleteComponent {
|
|
625
631
|
}
|
626
632
|
// Control Value Accessor
|
627
633
|
writeValue(obj) {
|
628
|
-
if (!obj || !obj.length) {
|
634
|
+
if (!obj || (Array.isArray(obj) && !obj.length) && this.selectAll) {
|
629
635
|
this.selectAllOptions(this.selectAll);
|
630
636
|
return;
|
631
637
|
}
|
632
|
-
if (this.multiple) {
|
638
|
+
if (this.multiple && Array.isArray(obj)) {
|
633
639
|
obj.forEach((item) => {
|
634
640
|
this.selectionForm.addControl(item[this.valueProp], this.formBuilder.control(true), { emitEvent: false });
|
635
641
|
});
|
636
642
|
this.selectionForm.updateValueAndValidity();
|
637
|
-
this.change.detectChanges();
|
638
643
|
}
|
639
644
|
else {
|
640
645
|
this.selectedOption = obj;
|
641
646
|
}
|
647
|
+
this.change.detectChanges();
|
642
648
|
}
|
643
649
|
registerOnChange(fn) {
|
644
650
|
this.onChange = fn;
|
@@ -650,11 +656,11 @@ class AutocompleteComponent {
|
|
650
656
|
this.disabled = isDisabled;
|
651
657
|
}
|
652
658
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i1$1.FormBuilder }, { token: i1$2.Overlay }, { token: i0.ViewContainerRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
653
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
659
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AutocompleteComponent, selector: "ask-autocomplete", inputs: { filterFn: "filterFn", displayFn: "displayFn", multiple: "multiple", valueProp: "valueProp", options: "options", placeholder: "placeholder", emptyMessage: "emptyMessage", selectAll: "selectAll" }, host: { listeners: { "window:mousedown": "handleClick($event)" } }, providers: [valueAccessor], viewQueries: [{ propertyName: "input", first: true, predicate: ["autocomplete"], descendants: true }, { propertyName: "list", first: true, predicate: ["list"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "overlayContent", first: true, predicate: ["overlayContent"], descendants: true }], ngImport: i0, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: ChipsComponent, selector: "ask-chips", inputs: ["color"], outputs: ["action"] }, { kind: "component", type: CheckboxComponent, selector: "ask-checkbox", inputs: ["value", "disabled"], outputs: ["valueChange", "change", "click", "focus"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
654
660
|
}
|
655
661
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
656
662
|
type: Component,
|
657
|
-
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
663
|
+
args: [{ selector: 'ask-autocomplete', providers: [valueAccessor], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n", styles: [":root{--asksuite-orange: #FF5724;--white: #FFF;--grey-50: #F5F7FA;--grey-100: #E4E7EB;--grey-200: #CBD2D9;--grey-300: #9AA5B1;--grey-400: #7B8794;--grey-500: #616E7C;--grey-600: #52606D;--grey-700: #3E4C59;--grey-800: #2A3042;--grey-900: #1F2933;--yellow-50: #FFF8E2;--yellow-200: #FFECB3;--success-green: #4BAF50;--warning-yellow: #FFC107;--error-red: #E8453E;--shadow: rgba(42, 48, 66, .1607843137);--lightblue-tag: #CDF9F3;--lavender-tag: #D4DAF3;--green-tag: #CEEEAA;--pink-tag: #FBC5FF;--orange-tag: #FED5C9;--purple-tag: #DDBFE5;--yellow-tag: #FFE0B2;--blue-tag: #B2E5FD;--brown-tag: #EFC89C;--whatsapp-green: #68B35D;--facebook-blue: #0084FF;--instagram-pink: #D53E91;--google-blue: #345DC8;--telegram-blue: #34AADF;--telephone-yellow: #FECB00;--primary-background: #FFF;--secondary-background: #EFF3F8;--hover-background: #F5F7FA;--divider-background: #E4E7EB;--font-color-100: #2A3042;--font-color-200: #616E7C;--font-color-300: #9AA5B1}:root{--font-default: $font-default;--font-code: $font-code}:root{--font-xs: $font-xs;--font-sm: $font-sm;--font-md: $font-md;--font-lg: $font-lg;--font-xl: $font-xl;--font-xxl: $font-xxl}:root{--font-weight-regular: $font-weight-regular;--font-weight-medium: $font-weight-medium}:root{--radii-px: $radii-px;--radii-xs: $radii-xs;--radii-sm: $radii-sm;--radii-md: $radii-md;--radii-lg: $radii-lg;--radii-full: $radii-full}.ellipsis,.option-item>.text,.option-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:\"liga\";-webkit-font-smoothing:antialiased}*{box-sizing:border-box}*,button,select,textarea{font-family:Inter,sans-serif;font-weight:400}input{font-size:1rem}.autocomplete-wrapper{position:relative;border:1px solid #CBD2D9;border-radius:4px;padding:16px}.autocomplete-wrapper>.autocomplete{display:flex;flex-direction:row;align-items:end;justify-content:space-between}.autocomplete-wrapper.-opened{border-bottom-right-radius:0;border-bottom-left-radius:0}.autocomplete-wrapper.-closed{transition:all ease-in-out .3s;min-height:54px}.search-field{font-style:inherit;width:100%;border:none;height:100%}.search-field:focus{border:none;outline:none}.search-field::placeholder{opacity:.6}.option-item{display:flex;flex-direction:row;align-items:center;padding-left:16px;height:36px;width:100%}.option-item.-highlighted{background-color:#e4e7eb}.option-item:hover{cursor:pointer;background-color:#f5f7fa}.chip-list{overflow:hidden;display:flex;align-items:center;flex-direction:row;flex-wrap:wrap;gap:.5rem;flex:1}.chip-list.-collapsed{height:26px}.chip-list>.expand{color:#616e7c;text-decoration:underline;font-size:12px}.chip-list>.expand:hover{cursor:pointer}.btn-expand:hover{cursor:pointer}.btn-expand.-disabled{color:#7b8794}.list-box,.menu-container>.list{min-height:148px}.menu-container{width:100%;background:white;max-height:165px;overflow-y:auto;border:1px solid #CBD2D9;border-bottom-right-radius:4px;border-bottom-left-radius:4px;border-top:none;padding:8px 0}.menu-container>.empty{text-align:center;display:inline-block;width:100%}.menu-container.-multiple{max-height:210px}\n"] }]
|
658
664
|
}], ctorParameters: function () { return [{ type: i1$1.FormBuilder }, { type: i1$2.Overlay }, { type: i0.ViewContainerRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { input: [{
|
659
665
|
type: ViewChild,
|
660
666
|
args: ["autocomplete"]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"asksuite-citrus.mjs","sources":["../../../projects/asksuite-citrus/src/lib/components/button/button.component.ts","../../../projects/asksuite-citrus/src/lib/components/button/button.component.html","../../../projects/asksuite-citrus/src/lib/components/input/input.component.ts","../../../projects/asksuite-citrus/src/lib/components/input/input.component.html","../../../projects/asksuite-citrus/src/lib/components/select/select.component.ts","../../../projects/asksuite-citrus/src/lib/components/select/select.component.html","../../../projects/asksuite-citrus/src/lib/components/box/box.component.ts","../../../projects/asksuite-citrus/src/lib/components/box/box.component.html","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.html","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.ts","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.html","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.html","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.html","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.html","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.ts","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/public-api.ts","../../../projects/asksuite-citrus/src/asksuite-citrus.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'ask-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n // Properties\n @Input() label = '';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'medium' | 'large' = 'normal';\n @Input() type: 'primary' | 'secondary' | 'outline' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n get buttonClasses() {\n return `${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n }\n\n get labelClass() {\n return `-${this.labelSide}`\n }\n}\n","<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider,\n ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => InputComponent),\n}\n\n@Component({\n selector: 'ask-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class InputComponent implements OnInit, ControlValueAccessor {\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() input = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n @Output() blur = new EventEmitter<FocusEvent>();\n @Output() leftIconClick = new EventEmitter<MouseEvent>();\n @Output() rightIconClick = new EventEmitter<MouseEvent>();\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n onModelChange(newValue: string) {\n this.writeValue(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n handleInput(event: Event) {\n this.input.emit(event);\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n handleBlur(event: FocusEvent) {\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange = () => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n\n}\n","<div\n class=\"input-container\"\n [ngClass]=\"{ 'focus': isFocused, 'disabled': disabled, 'left-icon': leftIcon, 'right-icon': rightIcon }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [type]=\"type\"\n [placeholder]=\"placeholder || ''\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (change)=\"handleChange($event)\"\n (input)=\"handleInput($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n\n (click)=\"rightIconClick.emit($event)\"\n >\n {{ rightIcon }}\n </span>\n</div>\n","import {Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SelectComponent),\n}\n\n@Component({\n selector: 'ask-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class SelectComponent implements ControlValueAccessor{\n\n @Input() value: any;\n @Output() valueChange = new EventEmitter();\n @Input() options: Array<Option> = [];\n @Input() maxItems = 4;\n @Input() showNoneOption = true;\n\n // Labels\n @Input() selectAnOptionLabel = 'Selecione uma opção';\n @Input() noOptionLabel = 'Nenhuma opção disponível';\n @Input() noneLabel = 'Nenhum';\n\n showList = false;\n selectedOption?: Option;\n\n constructor(\n private elementRef: ElementRef\n ) { }\n\n @HostListener('document:click', ['$event'])\n clickOut(event: PointerEvent) {\n const hasComponentInPath = event.composedPath().find((el: any) => el?.nodeName?.toLowerCase() === 'ask-select');\n\n if (\n this.elementRef.nativeElement.contains(event.target) ||\n hasComponentInPath\n ) {\n return;\n }\n\n this.showList = false;\n }\n\n get listMaxHeight() {\n const optionHeight = 46;\n\n return this.maxItems * optionHeight + this.maxItems + 1;\n }\n\n handleSelectClick() {\n this.showList = !this.showList;\n }\n\n handleOptionClick(option: Option | undefined) {\n this.setSelectedOption(option);\n\n }\n\n setSelectedOption(option: Option | undefined) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouch(this.value);\n this.valueChange.emit(this.value);\n\n }\n\n onChange: any = () => {\n }\n onTouch: any = () => {\n }\n\n writeValue(value: any) {\n this.value = value\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn\n }\n\n}\n","<div\n class=\"select-container\"\n (click)=\"handleSelectClick()\"\n>\n <select [hidden]=\"true\"></select>\n\n <span class=\"label\">{{ selectedOption?.label || selectAnOptionLabel }}</span>\n <span class=\"material-icons arrow\">arrow_drop_down</span>\n\n <div\n *ngIf=\"showList\"\n class=\"options-list\"\n [style.max-height]=\"listMaxHeight + 'px'\"\n >\n <!-- No options available -->\n <div\n *ngIf=\"!options?.length\"\n class=\"option\"\n >\n {{ noOptionLabel }}\n </div>\n\n <div\n *ngIf=\"showNoneOption && options?.length\"\n class=\"option\"\n (click)=\"handleOptionClick(undefined)\"\n >\n {{ noneLabel }}\n </div>\n\n <div\n *ngFor=\"let option of options\"\n class=\"option\"\n (click)=\"handleOptionClick(option)\"\n >\n {{ option.label }}\n </div>\n </div>\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'ask-box',\n templateUrl: './box.component.html',\n styleUrls: ['./box.component.scss']\n})\nexport class BoxComponent implements OnInit {\n\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() canCollapse = false;\n @Input() collapse = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\n","<div class=\"box-container\">\n <header *ngIf=\"canCollapse || title || subtitle\">\n <h1 *ngIf=\"title\" class=\"title\">{{ title }}</h1>\n <h2 *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</h2>\n\n <span\n *ngIf=\"canCollapse\"\n class=\"collapse-icon material-icons\"\n [class.collapsed]=\"!collapse\"\n (click)=\"toggleCollapse()\"\n >\n expand_more\n </span>\n </header>\n\n <div *ngIf=\"!collapse\" class=\"content\" [style.padding-top]=\"canCollapse ? '32px' : '0'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import {Component, Input} from '@angular/core';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent'\n}\n\n@Component({\n selector: 'ask-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() src: string = '';\n @Input() status: AvatarStatus | 'none' | 'online' | 'busy' | 'absent' = AvatarStatus.NONE;\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\">\n <img [src]=\"image\" alt=\"avatar\" />\n\n <span [class]=\"'status ' + status\"></span>\n</div>\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-dropdown-container',\n templateUrl: './dropdown-container.component.html',\n styleUrls: ['./dropdown-container.component.scss']\n})\nexport class DropdownContainerComponent implements OnInit {\n\n @Input() content!: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnInit,\n TemplateRef\n} from '@angular/core';\nimport {DropdownContainerComponent} from \"../components/dropdown-container/dropdown-container.component\";\nimport {ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown!: TemplateRef<any>;\n\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private _destroyRef: DestroyRef,\n ) { }\n\n ngOnInit() {\n this.setOverlayConfig();\n this.createOverlay();\n this.listenOutsideClicks();\n }\n\n private setOverlayConfig() {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getOverlayPosition());\n\n const scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayConfig = {\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private createOverlay() {\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n\n private getOverlayPosition(): ConnectedPosition[] {\n return [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ]\n }\n\n private listenOutsideClicks() {\n this.overlayRef.backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.close();\n event.stopPropagation()\n })\n }\n\n @HostListener('click')\n public show() {\n if (this.isRendered) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n this._isRendered = true;\n }\n\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'ask-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss']\n})\nexport class ChipsComponent {\n\n @Input()\n color: string = '';\n\n @Output()\n protected action = new EventEmitter<void>()\n\n}\n","<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => CheckboxComponent),\n}\n\n@Component({\n selector: 'ask-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [valueAccessor]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value: boolean | undefined;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<boolean>();\n @Output() change = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n\n isFocused = false;\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n onModelChange(newValue: boolean) {\n this.writeValue(newValue);\n this.onChange(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange(_: any): void {\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n\n}\n","<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n Input,\n Provider,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, map, startWith, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent),\n}\n\n@Component({\n selector: 'ask-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [valueAccessor],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements AfterViewInit, ControlValueAccessor {\n\n @ViewChild(\"autocomplete\") input: ElementRef | undefined\n @ViewChild(\"list\") list: ElementRef | undefined\n @ViewChild(\"wrapper\") wrapper: ElementRef | undefined\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n protected inputControl = new FormControl(\"\")\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected closed = true;\n protected selectionForm: FormGroup\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n\n private _overlayRef: OverlayRef | undefined;\n private _portal: TemplatePortal<any> | undefined;\n private _destroy = inject(DestroyRef)\n private readonly ITEMS_PER_PAGE = 40\n private _pageNumber = 1\n private _reachedEnd = false;\n\n @Input()\n filterFn?: (item: string) => any[];\n\n @Input()\n displayFn?: (item: any) => string;\n\n @Input()\n multiple = false;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'Nenhuma opção';\n\n @Input()\n selectAll = false\n\n constructor(private formBuilder: FormBuilder,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef) {\n this.selectionForm = formBuilder.group({})\n }\n\n ngAfterViewInit() {\n this.handleInputChange();\n\n this.handleSelectionChange();\n\n this.checkAllValue = this.selectAll;\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n startWith(''),\n tap(() => {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items\n this.getMoreItems(0)\n })\n }\n\n private handleSelectionChange() {\n this.selectionForm\n .valueChanges\n .pipe(takeUntilDestroyed(this._destroy), debounceTime(100))\n .subscribe((values: {[key: string]: boolean}) => {\n this.checkAllValue = Object.keys(values).every(value => values[value])\n this.onChange(this.options.filter(option => values[option[this.valueProp]]))\n this.onTouched()\n })\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.hideOptions()\n }\n\n handleAutocompleteClick() {\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n\n showOptions() {\n this.closed = false\n if (!this._overlayRef && this.wrapper) {\n this._overlayRef = this.getOverlayConfig(this.wrapper)\n\n this._portal = new TemplatePortal(this.overlayContent!, this.viewContainerRef)\n }\n\n this._overlayRef?.attach(this._portal);\n }\n\n private getOverlayConfig(wrapper: ElementRef) {\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(wrapper.nativeElement)\n .withPositions([{\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\"\n }])\n });\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this._overlayRef?.detach()\n this.change.detectChanges()\n }\n\n @HostListener(\"window:mousedown\", ['$event'])\n handleClick(event: MouseEvent) {\n if (\n !this.closed\n && !this.input?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target)) {\n this.hideOptions()\n }\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n const selected = this.options\n .filter(item => this.selectionForm.value[item[this.valueProp]])\n\n return this.chipsCollapsed\n ? selected.slice(0, 1)\n : selected;\n }\n\n handleSelectAll(event: Event) {\n const checked = (<HTMLInputElement>event.target).checked\n\n this.selectAllOptions(checked);\n }\n\n selectAllOptions(selected: boolean) {\n const newValues = Object.keys(this.selectionForm.controls)\n .reduce((acc, curr) => {\n acc[curr] = selected\n return acc;\n }, {} as {[key: string]: boolean})\n\n this.selectionForm.patchValue(newValues)\n this.selectionForm.updateValueAndValidity();\n this.change.detectChanges();\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.selectionForm.get(option[this.valueProp])?.setValue(false)\n } else {\n this.selectedOption = null;\n }\n\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems(scrollIndex: number) {\n if (!this._reachedEnd && (!this.paginatedFilteredOptions.length\n || ((scrollIndex + 5) >= (this.ITEMS_PER_PAGE * (this._pageNumber - 1 || 1))))) {\n const nextPageItems = this.filteredOptions.slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber);\n if (nextPageItems.length) {\n nextPageItems.forEach(item => {\n if (!this.selectionForm.value[item[this.valueProp]]) {\n this.selectionForm.addControl(\n item[this.valueProp],\n this.formBuilder.control(this.checkAllValue)\n )\n }\n })\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n } else {\n this._reachedEnd = true\n }\n }\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[]): void {\n if (!obj || !obj.length) {\n this.selectAllOptions(this.selectAll)\n return;\n }\n\n if (this.multiple) {\n obj.forEach((item) => {\n this.selectionForm.addControl(\n item[this.valueProp],\n this.formBuilder.control(true),\n {emitEvent: false})\n })\n this.selectionForm.updateValueAndValidity();\n this.change.detectChanges();\n } else {\n this.selectedOption = obj\n }\n }\n\n onChange = (_: any) => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onTouched = () => {}\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport enum PeriodLabel {\n TODAY = 'TODAY',\n YESTERDAY = 'YESTERDAY',\n LAST_7_DAYS = 'LAST_7_DAYS',\n LAST_30_DAYS = 'LAST_30_DAYS',\n THIS_MONTH = 'THIS_MONTH',\n LAST_QUARTER = 'LAST_QUARTER',\n CUSTOM_PERIOD = 'CUSTOM_PERIOD',\n}\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n}\n\nexport interface WeekDay {\n name: string;\n}\n\nexport type DateRange = { from?: string; to?: string; label?: PeriodLabel; };\n\nexport type DatePickerValue = string | DateRange;\n\ntype DayRange = { from?: Day; to?: Day; label?: string; };\n\ntype DatePickerInnerValue = Day | DayRange;\n\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';\nexport const formatFrom = (from: moment.Moment) => from.startOf('day').format(DEFAULT_DATE_FORMAT)\nexport const formatTo = (from: moment.Moment) => from.endOf('day').format(DEFAULT_DATE_FORMAT)\n\n@Component({\n selector: 'ask-date-picker-calendar',\n templateUrl: './date-picker-calendar.component.html',\n styleUrls: ['./date-picker-calendar.component.scss']\n})\nexport class DatePickerCalendarComponent implements OnInit {\n @Input() isRange: boolean = false;\n @Input() date!: DatePickerValue;\n @Output() dateChange: EventEmitter<DatePickerValue> = new EventEmitter<DatePickerValue>();\n\n private innerDate!: DatePickerInnerValue;\n private displayDate!: moment.Moment;\n private firstDayOfWeek!: number;\n private _weekDays: Array<WeekDay> = [];\n private _days: Array<Day> = [];\n\n get days(): Array<Day> {\n return this._days\n }\n\n get month(): string {\n return this.displayDate.format('MMMM');\n }\n\n get monthNumber(): number {\n return this.displayDate.month();\n }\n\n get year(): string {\n return this.displayDate.format('YYYY');\n }\n\n get weekDays(): Array<WeekDay> {\n return this._weekDays;\n }\n\n isDaySelected(day: Day): boolean {\n if (this.isRange) {\n\n const from = (this.innerDate as DayRange).from?.timestamp;\n const to = (this.innerDate as DayRange).to?.timestamp;\n\n if (!from) {\n return false;\n }\n else if (!to) {\n return day.timestamp === from;\n }\n\n return day.timestamp >= from && day.timestamp <= to;\n }\n\n return (this.innerDate as Day)?.timestamp === day.timestamp;\n }\n\n isFirstSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === (this.innerDate as DayRange).from?.formatted;\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n isLastSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === ((this.innerDate as DayRange).to?.formatted || (this.innerDate as DayRange).from?.formatted);\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n ngOnInit() {\n this.assignInitialValues();\n this.refreshDisplay();\n }\n\n private assignInitialValues() {\n if (this.isRange) {\n const receivedDate = this.date as DateRange;\n if (receivedDate.from && receivedDate.to) {\n (this.innerDate as DayRange) = {\n from: this.getDayFromString(receivedDate.from),\n to: this.getDayFromString(receivedDate.to),\n label: PeriodLabel[receivedDate.label || 'CUSTOM_PERIOD'].toString()\n }\n }\n else {\n (this.innerDate as DayRange) = {\n label: 'CUSTOM_PERIOD'\n };\n }\n this.displayDate = moment.unix((this.innerDate as DayRange).from?.timestamp || (Date.now() / 1000));\n }\n else {\n this.innerDate = this.getDayFromString(this.date as string);\n this.displayDate = moment.unix(this.innerDate.timestamp);\n }\n\n this.firstDayOfWeek = this.displayDate.clone().startOf('week').day();\n }\n\n private refreshDisplay() {\n this.buildWeekDays();\n this.buildDays();\n }\n\n private buildWeekDays() {\n const startOfWeek = this.displayDate.clone().startOf('week');\n const endOfWeek = this.displayDate.clone().endOf('week');\n this._weekDays = [];\n\n do {\n this._weekDays.push({\n name: startOfWeek.format('ddd')\n });\n\n startOfWeek.add(1, 'day');\n }\n while (startOfWeek.isBefore(endOfWeek));\n }\n\n private buildDays() {\n let startDay = this.displayDate.clone().startOf('month');\n let endDay = this.displayDate.clone().endOf('month');\n\n let daysOfPastMonth: Array<Day> = [];\n let daysOfThisMonth: Array<Day> = [];\n let daysOfNextMonth: Array<Day> = [];\n\n // Builds this month days\n daysOfThisMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds past month days\n if (daysOfThisMonth[0].weekDay !== this.firstDayOfWeek) {\n startDay = this.displayDate.clone().startOf('month').startOf('week');\n }\n else {\n startDay = this.displayDate.clone().subtract(1, 'month').endOf('month').startOf('week');\n }\n endDay = startDay.clone().endOf('month');\n daysOfPastMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds next month days\n startDay = this.displayDate.clone().add(1, 'month').startOf('month');\n endDay = startDay.clone().endOf('week');\n daysOfNextMonth = this.getDaysBetween(startDay, endDay);\n\n this._days = [\n ...daysOfPastMonth,\n ...daysOfThisMonth,\n ...daysOfNextMonth,\n ];\n\n // If calendar isn't complete yet (all 7 columns and 6 rows are full), adds another week to complete the calendar\n if (this._days.length < 42) {\n endDay = endDay.clone().add(1, 'day').endOf('week');\n startDay = endDay.clone().startOf('week');\n this._days.push(...this.getDaysBetween(startDay, endDay));\n }\n }\n\n private getDaysBetween(start: moment.Moment, end: moment.Moment): Array<Day> {\n start = start.clone();\n end = end.clone();\n\n const days = [];\n do {\n days.push(this.getDayFromMoment(start));\n\n start.add(1, 'day');\n }\n while (start.isBefore(end));\n\n return days;\n }\n\n getDayFromMoment(day: moment.Moment): Day {\n day = day.clone().startOf('day');\n\n return {\n timestamp: day.unix(),\n day: day.format('D'),\n month: day.month(),\n weekDay: day.day(),\n formatted: day.format(DEFAULT_DATE_FORMAT),\n }\n }\n\n getDayFromString(date: string): Day {\n return this.getDayFromMoment(moment(date));\n }\n\n getDateFromDay(day: Day): string {\n return moment.unix(day.timestamp).startOf('day').format(DEFAULT_DATE_FORMAT);\n }\n\n incrementMonth(amount: number) {\n this.displayDate.add(amount, 'month');\n this.refreshDisplay();\n }\n\n selectDate(timestamp: number) {\n const momentDate = moment.unix(timestamp);\n\n if (this.isRange) {\n this.handleRangeSelect(momentDate);\n }\n else {\n this.handleSingleSelect(momentDate);\n }\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n // First selection\n if (!innerDate.from) {\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Second selection\n else if (!innerDate.to) {\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n // Selected date is past the previous selected date\n if (selectedDate.isBefore(actualFrom, 'day')) {\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Selected date is future of the previous selected date\n else {\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n\n // Selection when both from and to are already selected\n else {\n innerDate.from = this.getDayFromMoment(selectedDate);\n innerDate.to = undefined;\n }\n\n this.emitRange(innerDate);\n }\n\n private emitRange(range: DayRange) {\n const newRange: DateRange = {};\n newRange.label = PeriodLabel.CUSTOM_PERIOD;\n\n if (range.from) {\n newRange.from = this.getDateFromDay(range.from);\n\n if (range.to) newRange.to = formatTo(moment.unix(range.to.timestamp));\n }\n\n this.dateChange.emit(newRange);\n }\n\n private handleSingleSelect(momentDate: moment.Moment) {\n this.innerDate = this.getDayFromMoment(momentDate);\n this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));\n }\n}\n","<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider} from '@angular/core';\nimport moment from 'moment';\nimport {DatePickerValue, DateRange, PeriodLabel, formatFrom, formatTo} from \"./date-picker-calendar/date-picker-calendar.component\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\ninterface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n selected: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\n\n\n@Component({\n selector: 'ask-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [ VALUE_ACCESSOR ],\n})\nexport class DatePickerComponent implements OnInit, ControlValueAccessor {\n\n periods: Array<Period> = [\n { label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }), selected: false },\n { label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }), selected: false },\n { label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }), selected: false },\n { label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true, selected: false },\n ];\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n isCustomRange = false;\n\n get from(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).from;\n }\n\n get to(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).to;\n }\n\n get dateDisplay(): string {\n const from = this.from ? moment(this.from).format('L') : '';\n const to = this.to ? moment(this.to).format('L') : '';\n\n return `${from} ${ to ? '- ' + to : '' }`;\n }\n\n ngOnInit(): void {\n }\n\n selectPeriod(period: Period) {\n this.periods.forEach((period: Period) => period.selected = false);\n\n this.date = period.getRange();\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\n period.selected = true;\n\n if (!this.isCustomRange) {\n this.emitValue();\n }\n }\n\n handleDateChange(value: DatePickerValue) {\n this.date = value;\n\n if (!this.isRange) {\n this.emitValue();\n }\n }\n\n emitValue() {\n this.dateChange.emit(this.date);\n this.onChange(this.date);\n this.close.emit();\n }\n\n handleCancelClick() {\n this.close.emit();\n }\n\n private getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: PeriodLabel = PeriodLabel.TODAY) {\n return this.periods.find(p => p.label === periodName) ||\n this.periods.find(p => p.label === defaultPeriodName);\n }\n\n checkPeriodShouldBeSelectedByValue() {\n if (!this.isRange) {\n return;\n }\n\n this.periods.forEach((period: Period) => period.selected = false);\n const period = this.periods.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n period.selected = true;\n this.isCustomRange = period.isCustomRange || false;\n }\n\n writeValue(value: DatePickerValue) {\n if (this.isRange) {\n const valueRange = value as DateRange;\n\n if (valueRange.label && valueRange.label !== PeriodLabel.CUSTOM_PERIOD) {\n const period = this.getPeriodOrDefault(valueRange.label)?.getRange() || {};\n this.date = { ...period, label: valueRange.label };\n }\n\n else if (valueRange.from && valueRange.to) {\n this.date = { from: valueRange.from, to: valueRange.to, label: PeriodLabel.CUSTOM_PERIOD };\n }\n\n this.checkPeriodShouldBeSelectedByValue();\n }\n\n else {\n this.date = value;\n }\n }\n\n registerOnChange(fn: (value: DatePickerValue) => void): void {\n this.onChange = fn;\n }\n\n onChange = (value: DatePickerValue) => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n}\n","<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of periods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.selected }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n})\nexport class SkeletonComponent {\n @Input() barsHeight = 100;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n protected get barsCount(): number {\n const height = this.elementRef.nativeElement.clientHeight;\n return Math.round(height / this.barsHeight) || 1;\n }\n}\n","<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': '5px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CommonModule } from '@angular/common';\nimport { InputComponent } from './components/input/input.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { BoxComponent } from './components/box/box.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { DropdownContainerComponent } from './components/dropdown-container/dropdown-container.component';\nimport { AskDropdownDirective } from './directives/ask-dropdown.directive';\nimport { AutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n OverlayModule,\n} from '@angular/cdk/overlay';\nimport { ChipsComponent } from './components/chips/chips.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DatePickerComponent } from './components/date-picker/date-picker.component';\nimport { DatePickerCalendarComponent } from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SkeletonComponent } from './components/skeleton/skeleton.component';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n ScrollingModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n ],\n})\nexport class AsksuiteCitrusModule {}\n","/*\n * Public API Surface of asksuite-citrus\n */\n\nexport * from './lib/asksuite-citrus.module';\n\n// Components\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/input/input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/box/box.component'\nexport * from './lib/components/avatar/avatar.component'\nexport * from './lib/components/dropdown-container/dropdown-container.component'\nexport * from './lib/components/autocomplete/autocomplete.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/chips/chips.component'\nexport * from './lib/components/date-picker/date-picker.component'\nexport * from './lib/components/date-picker/date-picker-calendar/date-picker-calendar.component'\nexport * from './lib/components/skeleton/skeleton.component'\n\n// Directives\nexport * from './lib/directives/ask-dropdown.directive'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i2","i1","i3","i5.ChipsComponent","i6.CheckboxComponent","i2.ButtonComponent","i3.DatePickerCalendarComponent","i4"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"asksuite-citrus.mjs","sources":["../../../projects/asksuite-citrus/src/lib/components/button/button.component.ts","../../../projects/asksuite-citrus/src/lib/components/button/button.component.html","../../../projects/asksuite-citrus/src/lib/components/input/input.component.ts","../../../projects/asksuite-citrus/src/lib/components/input/input.component.html","../../../projects/asksuite-citrus/src/lib/components/select/select.component.ts","../../../projects/asksuite-citrus/src/lib/components/select/select.component.html","../../../projects/asksuite-citrus/src/lib/components/box/box.component.ts","../../../projects/asksuite-citrus/src/lib/components/box/box.component.html","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.ts","../../../projects/asksuite-citrus/src/lib/components/avatar/avatar.component.html","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.ts","../../../projects/asksuite-citrus/src/lib/components/dropdown-container/dropdown-container.component.html","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.ts","../../../projects/asksuite-citrus/src/lib/components/chips/chips.component.html","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/checkbox/checkbox.component.html","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.ts","../../../projects/asksuite-citrus/src/lib/components/autocomplete/autocomplete.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.html","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.ts","../../../projects/asksuite-citrus/src/lib/components/date-picker/date-picker.component.html","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.ts","../../../projects/asksuite-citrus/src/lib/components/skeleton/skeleton.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/public-api.ts","../../../projects/asksuite-citrus/src/asksuite-citrus.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'ask-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss'],\n})\nexport class ButtonComponent {\n // Properties\n @Input() label = '';\n @Input() size: 'xsmall' | 'small' | 'normal' | 'medium' | 'large' = 'normal';\n @Input() type: 'primary' | 'secondary' | 'outline' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n get buttonClasses() {\n return `${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n }\n\n get labelClass() {\n return `-${this.labelSide}`\n }\n}\n","<button\n type=\"button\"\n data-testid=\"button\"\n [ngClass]=\"buttonClasses\"\n [disabled]=\"disabled\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\"\n>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Input,\n OnInit,\n Output,\n Provider,\n ViewChild\n} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => InputComponent),\n}\n\n@Component({\n selector: 'ask-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class InputComponent implements OnInit, ControlValueAccessor {\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<string>();\n @Output() change = new EventEmitter<Event>();\n @Output() input = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n @Output() blur = new EventEmitter<FocusEvent>();\n @Output() leftIconClick = new EventEmitter<MouseEvent>();\n @Output() rightIconClick = new EventEmitter<MouseEvent>();\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n onModelChange(newValue: string) {\n this.writeValue(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n handleInput(event: Event) {\n this.input.emit(event);\n }\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n handleBlur(event: FocusEvent) {\n this.isFocused = false;\n this.blur.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange = () => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: string): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n\n}\n","<div\n class=\"input-container\"\n [ngClass]=\"{ 'focus': isFocused, 'disabled': disabled, 'left-icon': leftIcon, 'right-icon': rightIcon }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [type]=\"type\"\n [placeholder]=\"placeholder || ''\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\"\n (change)=\"handleChange($event)\"\n (input)=\"handleInput($event)\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n\n (click)=\"rightIconClick.emit($event)\"\n >\n {{ rightIcon }}\n </span>\n</div>\n","import {Component, ElementRef, EventEmitter, forwardRef, HostListener, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nexport interface Option {\n value: string;\n label: string;\n}\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => SelectComponent),\n}\n\n@Component({\n selector: 'ask-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.scss'],\n providers: [ valueAccessor ]\n})\nexport class SelectComponent implements ControlValueAccessor{\n\n @Input() value: any;\n @Output() valueChange = new EventEmitter();\n @Input() options: Array<Option> = [];\n @Input() maxItems = 4;\n @Input() showNoneOption = true;\n\n // Labels\n @Input() selectAnOptionLabel = 'Selecione uma opção';\n @Input() noOptionLabel = 'Nenhuma opção disponível';\n @Input() noneLabel = 'Nenhum';\n\n showList = false;\n selectedOption?: Option;\n\n constructor(\n private elementRef: ElementRef\n ) { }\n\n @HostListener('document:click', ['$event'])\n clickOut(event: PointerEvent) {\n const hasComponentInPath = event.composedPath().find((el: any) => el?.nodeName?.toLowerCase() === 'ask-select');\n\n if (\n this.elementRef.nativeElement.contains(event.target) ||\n hasComponentInPath\n ) {\n return;\n }\n\n this.showList = false;\n }\n\n get listMaxHeight() {\n const optionHeight = 46;\n\n return this.maxItems * optionHeight + this.maxItems + 1;\n }\n\n handleSelectClick() {\n this.showList = !this.showList;\n }\n\n handleOptionClick(option: Option | undefined) {\n this.setSelectedOption(option);\n\n }\n\n setSelectedOption(option: Option | undefined) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n this.writeValue(this.value);\n this.onChange(this.value);\n this.onTouch(this.value);\n this.valueChange.emit(this.value);\n\n }\n\n onChange: any = () => {\n }\n onTouch: any = () => {\n }\n\n writeValue(value: any) {\n this.value = value\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn\n }\n\n registerOnTouched(fn: any) {\n this.onTouch = fn\n }\n\n}\n","<div\n class=\"select-container\"\n (click)=\"handleSelectClick()\"\n>\n <select [hidden]=\"true\"></select>\n\n <span class=\"label\">{{ selectedOption?.label || selectAnOptionLabel }}</span>\n <span class=\"material-icons arrow\">arrow_drop_down</span>\n\n <div\n *ngIf=\"showList\"\n class=\"options-list\"\n [style.max-height]=\"listMaxHeight + 'px'\"\n >\n <!-- No options available -->\n <div\n *ngIf=\"!options?.length\"\n class=\"option\"\n >\n {{ noOptionLabel }}\n </div>\n\n <div\n *ngIf=\"showNoneOption && options?.length\"\n class=\"option\"\n (click)=\"handleOptionClick(undefined)\"\n >\n {{ noneLabel }}\n </div>\n\n <div\n *ngFor=\"let option of options\"\n class=\"option\"\n (click)=\"handleOptionClick(option)\"\n >\n {{ option.label }}\n </div>\n </div>\n</div>\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n selector: 'ask-box',\n templateUrl: './box.component.html',\n styleUrls: ['./box.component.scss']\n})\nexport class BoxComponent implements OnInit {\n\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() canCollapse = false;\n @Input() collapse = false;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\n","<div class=\"box-container\">\n <header *ngIf=\"canCollapse || title || subtitle\">\n <h1 *ngIf=\"title\" class=\"title\">{{ title }}</h1>\n <h2 *ngIf=\"subtitle\" class=\"subtitle\">{{ subtitle }}</h2>\n\n <span\n *ngIf=\"canCollapse\"\n class=\"collapse-icon material-icons\"\n [class.collapsed]=\"!collapse\"\n (click)=\"toggleCollapse()\"\n >\n expand_more\n </span>\n </header>\n\n <div *ngIf=\"!collapse\" class=\"content\" [style.padding-top]=\"canCollapse ? '32px' : '0'\">\n <ng-content></ng-content>\n </div>\n</div>\n","import {Component, Input} from '@angular/core';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent'\n}\n\n@Component({\n selector: 'ask-avatar',\n templateUrl: './avatar.component.html',\n styleUrls: ['./avatar.component.scss']\n})\nexport class AvatarComponent {\n\n @Input() src: string = '';\n @Input() status: AvatarStatus | 'none' | 'online' | 'busy' | 'absent' = AvatarStatus.NONE;\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\">\n <img [src]=\"image\" alt=\"avatar\" />\n\n <span [class]=\"'status ' + status\"></span>\n</div>\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-dropdown-container',\n templateUrl: './dropdown-container.component.html',\n styleUrls: ['./dropdown-container.component.scss']\n})\nexport class DropdownContainerComponent implements OnInit {\n\n @Input() content!: TemplateRef<any>;\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Input,\n OnInit,\n TemplateRef\n} from '@angular/core';\nimport {DropdownContainerComponent} from \"../components/dropdown-container/dropdown-container.component\";\nimport {ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown!: TemplateRef<any>;\n\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private _destroyRef: DestroyRef,\n ) { }\n\n ngOnInit() {\n this.setOverlayConfig();\n this.createOverlay();\n this.listenOutsideClicks();\n }\n\n private setOverlayConfig() {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(this.elementRef)\n .withPositions(this.getOverlayPosition());\n\n const scrollStrategy = this.overlay.scrollStrategies.block();\n\n this.overlayConfig = {\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private createOverlay() {\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n\n private getOverlayPosition(): ConnectedPosition[] {\n return [\n { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ]\n }\n\n private listenOutsideClicks() {\n this.overlayRef.backdropClick()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event) => {\n this.close();\n event.stopPropagation()\n })\n }\n\n @HostListener('click')\n public show() {\n if (this.isRendered) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n this._isRendered = true;\n }\n\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\n\n@Component({\n selector: 'ask-chips',\n templateUrl: './chips.component.html',\n styleUrls: ['./chips.component.scss']\n})\nexport class ChipsComponent {\n\n @Input()\n color: string = '';\n\n @Output()\n protected action = new EventEmitter<void>()\n\n}\n","<div class=\"chip-container\" [style.background]=\"color\">\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\">\n <span class=\"material-icons\" data-testid=\"icon\" (click)=\"action.emit()\">cancel</span>\n </div>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, Output, Provider} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => CheckboxComponent),\n}\n\n@Component({\n selector: 'ask-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [valueAccessor]\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value: boolean | undefined;\n @Input() disabled: boolean = false;\n\n @Output() valueChange = new EventEmitter<boolean>();\n @Output() change = new EventEmitter<Event>();\n @Output() click = new EventEmitter<MouseEvent>();\n @Output() focus = new EventEmitter<FocusEvent>();\n\n isFocused = false;\n\n handleFocus(event: FocusEvent) {\n this.isFocused = true;\n this.focus.emit(event);\n }\n\n onModelChange(newValue: boolean) {\n this.writeValue(newValue);\n this.onChange(newValue);\n }\n\n handleChange(event: Event) {\n this.change.emit(event);\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onChange(_: any): void {\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n this.valueChange.emit(this.value);\n }\n\n}\n","<label class=\"ask-checkbox\">\n <input type=\"checkbox\"\n (click)=\"click.emit($event)\"\n (focus)=\"handleFocus($event)\"\n (change)=\"handleChange($event)\"\n (touchend)=\"onTouch()\"\n [disabled]=\"disabled\"\n [ngModel]=\"value\"\n (ngModelChange)=\"onModelChange($event)\"\n />\n <span #text [title]=\"text.innerText\"><ng-content></ng-content></span>\n</label>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n forwardRef,\n HostListener,\n inject,\n Input,\n Provider,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, FormGroup, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, map, startWith, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => AutocompleteComponent),\n}\n\n@Component({\n selector: 'ask-autocomplete',\n templateUrl: './autocomplete.component.html',\n styleUrls: ['./autocomplete.component.scss'],\n providers: [valueAccessor],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AutocompleteComponent implements AfterViewInit, ControlValueAccessor {\n\n @ViewChild(\"autocomplete\") input: ElementRef | undefined\n @ViewChild(\"list\") list: ElementRef | undefined\n @ViewChild(\"wrapper\") wrapper: ElementRef | undefined\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n protected inputControl = new FormControl(\"\")\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected closed = true;\n protected selectionForm: FormGroup\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n\n private _overlayRef: OverlayRef | undefined;\n private _portal: TemplatePortal<any> | undefined;\n private _destroy = inject(DestroyRef)\n private readonly ITEMS_PER_PAGE = 40\n private _pageNumber = 1\n private _reachedEnd = false;\n\n @Input()\n filterFn?: (item: string) => any[];\n\n @Input()\n displayFn?: (item: any) => string;\n\n @Input()\n multiple = false;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'Nenhuma opção';\n\n @Input()\n selectAll = false\n\n constructor(private formBuilder: FormBuilder,\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef) {\n this.selectionForm = formBuilder.group({})\n }\n\n ngAfterViewInit() {\n this.handleInputChange();\n\n this.handleSelectionChange();\n\n this.checkAllValue = this.selectAll;\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n startWith(''),\n tap(() => {\n this._pageNumber = 1\n this._reachedEnd = false\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items\n this.getMoreItems(0)\n })\n }\n\n private handleSelectionChange() {\n this.selectionForm\n .valueChanges\n .pipe(takeUntilDestroyed(this._destroy), debounceTime(100))\n .subscribe((values: {[key: string]: boolean}) => {\n this.checkAllValue = Object.keys(values).every(value => values[value])\n this.onChange(this.options.filter(option => values[option[this.valueProp]]))\n this.onTouched()\n })\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.hideOptions()\n this.change.detectChanges();\n }\n\n handleAutocompleteClick() {\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n\n showOptions() {\n this.closed = false\n if (!this._overlayRef && this.wrapper) {\n this._overlayRef = this.getOverlayConfig(this.wrapper)\n\n this._portal = new TemplatePortal(this.overlayContent!, this.viewContainerRef)\n }\n\n this._overlayRef?.attach(this._portal);\n }\n\n private getOverlayConfig(wrapper: ElementRef) {\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(wrapper.nativeElement)\n .withPositions([{\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\"\n }])\n });\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this._overlayRef?.detach()\n this.change.detectChanges()\n }\n\n @HostListener(\"window:mousedown\", ['$event'])\n handleClick(event: MouseEvent) {\n if (\n !this.closed\n && !this.input?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target)) {\n this.hideOptions()\n }\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n const selected = this.options\n .filter(item => this.selectionForm.value[item[this.valueProp]])\n\n return this.chipsCollapsed\n ? selected.slice(0, 1)\n : selected;\n }\n\n handleSelectAll(event: Event) {\n const checked = (<HTMLInputElement>event.target).checked\n\n this.selectAllOptions(checked);\n }\n\n selectAllOptions(selected: boolean) {\n this.options.forEach(option => {\n if (this.selectionForm.value[option[this.valueProp]] === undefined) {\n this.selectionForm.addControl(\n option[this.valueProp],\n this.formBuilder.control(selected),\n {emitEvent: false}\n )\n }\n })\n const newValues = Object.keys(this.selectionForm.controls)\n .reduce((acc, curr) => {\n acc[curr] = selected\n return acc;\n }, {} as {[key: string]: boolean})\n\n this.selectionForm.patchValue(newValues)\n this.selectionForm.updateValueAndValidity();\n this.change.detectChanges();\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.selectionForm.get(option[this.valueProp])?.setValue(false)\n } else {\n this.selectedOption = null;\n }\n\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems(scrollIndex: number) {\n if (!this._reachedEnd && (!this.paginatedFilteredOptions.length\n || ((scrollIndex + 5) >= (this.ITEMS_PER_PAGE * (this._pageNumber - 1 || 1))))) {\n const nextPageItems = this.filteredOptions.slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber);\n if (nextPageItems.length) {\n nextPageItems.forEach(item => {\n if (!this.selectionForm.value[item[this.valueProp]]) {\n this.selectionForm.addControl(\n item[this.valueProp],\n this.formBuilder.control(this.checkAllValue)\n )\n }\n })\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n } else {\n this._reachedEnd = true\n }\n }\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[] | any): void {\n if (!obj || (Array.isArray(obj) && !obj.length) && this.selectAll) {\n this.selectAllOptions(this.selectAll)\n return;\n }\n\n if (this.multiple && Array.isArray(obj)) {\n obj.forEach((item) => {\n this.selectionForm.addControl(\n item[this.valueProp],\n this.formBuilder.control(true),\n {emitEvent: false})\n })\n this.selectionForm.updateValueAndValidity();\n } else {\n this.selectedOption = obj\n }\n\n this.change.detectChanges();\n }\n\n onChange = (_: any) => {}\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n onTouched = () => {}\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n}\n","<div class=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n #wrapper\n>\n <div class=\"autocomplete\" #autocomplete>\n <input class=\"search-field\"\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"/>\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"selectedOptions.length && closed\">\n <div class=\"chip-list\" [class.-collapsed]=\"chipsCollapsed\">\n <ask-chips [style.max-width]=\"chipsCollapsed ? '75%' : '100%'\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\">\n {{display(option)}}\n </ask-chips>\n <span class=\"expand\" data-testid=\"see-more\" *ngIf=\"multiple\" (click)=\"chipsCollapsed = !chipsCollapsed\">\n {{chipsCollapsed ? 'Ver mais' : 'Ver menos'}}\n </span>\n </div>\n </ng-container>\n <span data-testid=\"placeholder\" *ngIf=\"closed && !selectedOptions.length\">{{placeholder}}</span>\n </ng-template>\n <span class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n (click)=\"!disabled && handleAutocompleteClick()\">{{closed ? \"expand_more\" : \"expand_less\"}}</span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\" [class.-multiple]=\"multiple\">\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\"\n [class.-highlighted]=\"selectedOption && selectedOption[valueProp] === option[valueProp]\"\n (click)=\"handleOptionSelected(option)\">\n <p class=\"text\">{{display(option)}}</p>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"paginatedFilteredOptions.length && selectAll\">\n <ask-checkbox (change)=\"handleSelectAll($event)\" [(ngModel)]=\"checkAllValue\">Selecionar todas</ask-checkbox>\n </div>\n <form data-testid=\"options-form\" *ngIf=\"selectionForm.controls\" [formGroup]=\"selectionForm\">\n <cdk-virtual-scroll-viewport [itemSize]=\"36\" class=\"list-box\" (scrolledIndexChange)=\"getMoreItems($event)\">\n <ng-container *cdkVirtualFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox [formControlName]=\"option[valueProp]\">{{display(option)}}</ask-checkbox>\n </div>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n </form>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{emptyMessage}}</span>\n </div>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport enum PeriodLabel {\n TODAY = 'TODAY',\n YESTERDAY = 'YESTERDAY',\n LAST_7_DAYS = 'LAST_7_DAYS',\n LAST_30_DAYS = 'LAST_30_DAYS',\n THIS_MONTH = 'THIS_MONTH',\n LAST_QUARTER = 'LAST_QUARTER',\n CUSTOM_PERIOD = 'CUSTOM_PERIOD',\n}\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n}\n\nexport interface WeekDay {\n name: string;\n}\n\nexport type DateRange = { from?: string; to?: string; label?: PeriodLabel; };\n\nexport type DatePickerValue = string | DateRange;\n\ntype DayRange = { from?: Day; to?: Day; label?: string; };\n\ntype DatePickerInnerValue = Day | DayRange;\n\nexport const DEFAULT_DATE_FORMAT = 'YYYY-MM-DDTHH:mm:ssZ';\nexport const formatFrom = (from: moment.Moment) => from.startOf('day').format(DEFAULT_DATE_FORMAT)\nexport const formatTo = (from: moment.Moment) => from.endOf('day').format(DEFAULT_DATE_FORMAT)\n\n@Component({\n selector: 'ask-date-picker-calendar',\n templateUrl: './date-picker-calendar.component.html',\n styleUrls: ['./date-picker-calendar.component.scss']\n})\nexport class DatePickerCalendarComponent implements OnInit {\n @Input() isRange: boolean = false;\n @Input() date!: DatePickerValue;\n @Output() dateChange: EventEmitter<DatePickerValue> = new EventEmitter<DatePickerValue>();\n\n private innerDate!: DatePickerInnerValue;\n private displayDate!: moment.Moment;\n private firstDayOfWeek!: number;\n private _weekDays: Array<WeekDay> = [];\n private _days: Array<Day> = [];\n\n get days(): Array<Day> {\n return this._days\n }\n\n get month(): string {\n return this.displayDate.format('MMMM');\n }\n\n get monthNumber(): number {\n return this.displayDate.month();\n }\n\n get year(): string {\n return this.displayDate.format('YYYY');\n }\n\n get weekDays(): Array<WeekDay> {\n return this._weekDays;\n }\n\n isDaySelected(day: Day): boolean {\n if (this.isRange) {\n\n const from = (this.innerDate as DayRange).from?.timestamp;\n const to = (this.innerDate as DayRange).to?.timestamp;\n\n if (!from) {\n return false;\n }\n else if (!to) {\n return day.timestamp === from;\n }\n\n return day.timestamp >= from && day.timestamp <= to;\n }\n\n return (this.innerDate as Day)?.timestamp === day.timestamp;\n }\n\n isFirstSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === (this.innerDate as DayRange).from?.formatted;\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n isLastSelectedDay(day: Day) {\n if (this.isRange) {\n return day.formatted === ((this.innerDate as DayRange).to?.formatted || (this.innerDate as DayRange).from?.formatted);\n }\n\n return (this.innerDate as Day).formatted === day.formatted;\n }\n\n ngOnInit() {\n this.assignInitialValues();\n this.refreshDisplay();\n }\n\n private assignInitialValues() {\n if (this.isRange) {\n const receivedDate = this.date as DateRange;\n if (receivedDate.from && receivedDate.to) {\n (this.innerDate as DayRange) = {\n from: this.getDayFromString(receivedDate.from),\n to: this.getDayFromString(receivedDate.to),\n label: PeriodLabel[receivedDate.label || 'CUSTOM_PERIOD'].toString()\n }\n }\n else {\n (this.innerDate as DayRange) = {\n label: 'CUSTOM_PERIOD'\n };\n }\n this.displayDate = moment.unix((this.innerDate as DayRange).from?.timestamp || (Date.now() / 1000));\n }\n else {\n this.innerDate = this.getDayFromString(this.date as string);\n this.displayDate = moment.unix(this.innerDate.timestamp);\n }\n\n this.firstDayOfWeek = this.displayDate.clone().startOf('week').day();\n }\n\n private refreshDisplay() {\n this.buildWeekDays();\n this.buildDays();\n }\n\n private buildWeekDays() {\n const startOfWeek = this.displayDate.clone().startOf('week');\n const endOfWeek = this.displayDate.clone().endOf('week');\n this._weekDays = [];\n\n do {\n this._weekDays.push({\n name: startOfWeek.format('ddd')\n });\n\n startOfWeek.add(1, 'day');\n }\n while (startOfWeek.isBefore(endOfWeek));\n }\n\n private buildDays() {\n let startDay = this.displayDate.clone().startOf('month');\n let endDay = this.displayDate.clone().endOf('month');\n\n let daysOfPastMonth: Array<Day> = [];\n let daysOfThisMonth: Array<Day> = [];\n let daysOfNextMonth: Array<Day> = [];\n\n // Builds this month days\n daysOfThisMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds past month days\n if (daysOfThisMonth[0].weekDay !== this.firstDayOfWeek) {\n startDay = this.displayDate.clone().startOf('month').startOf('week');\n }\n else {\n startDay = this.displayDate.clone().subtract(1, 'month').endOf('month').startOf('week');\n }\n endDay = startDay.clone().endOf('month');\n daysOfPastMonth = this.getDaysBetween(startDay, endDay);\n\n // Builds next month days\n startDay = this.displayDate.clone().add(1, 'month').startOf('month');\n endDay = startDay.clone().endOf('week');\n daysOfNextMonth = this.getDaysBetween(startDay, endDay);\n\n this._days = [\n ...daysOfPastMonth,\n ...daysOfThisMonth,\n ...daysOfNextMonth,\n ];\n\n // If calendar isn't complete yet (all 7 columns and 6 rows are full), adds another week to complete the calendar\n if (this._days.length < 42) {\n endDay = endDay.clone().add(1, 'day').endOf('week');\n startDay = endDay.clone().startOf('week');\n this._days.push(...this.getDaysBetween(startDay, endDay));\n }\n }\n\n private getDaysBetween(start: moment.Moment, end: moment.Moment): Array<Day> {\n start = start.clone();\n end = end.clone();\n\n const days = [];\n do {\n days.push(this.getDayFromMoment(start));\n\n start.add(1, 'day');\n }\n while (start.isBefore(end));\n\n return days;\n }\n\n getDayFromMoment(day: moment.Moment): Day {\n day = day.clone().startOf('day');\n\n return {\n timestamp: day.unix(),\n day: day.format('D'),\n month: day.month(),\n weekDay: day.day(),\n formatted: day.format(DEFAULT_DATE_FORMAT),\n }\n }\n\n getDayFromString(date: string): Day {\n return this.getDayFromMoment(moment(date));\n }\n\n getDateFromDay(day: Day): string {\n return moment.unix(day.timestamp).startOf('day').format(DEFAULT_DATE_FORMAT);\n }\n\n incrementMonth(amount: number) {\n this.displayDate.add(amount, 'month');\n this.refreshDisplay();\n }\n\n selectDate(timestamp: number) {\n const momentDate = moment.unix(timestamp);\n\n if (this.isRange) {\n this.handleRangeSelect(momentDate);\n }\n else {\n this.handleSingleSelect(momentDate);\n }\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n // First selection\n if (!innerDate.from) {\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Second selection\n else if (!innerDate.to) {\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n // Selected date is past the previous selected date\n if (selectedDate.isBefore(actualFrom, 'day')) {\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n }\n\n // Selected date is future of the previous selected date\n else {\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n\n // Selection when both from and to are already selected\n else {\n innerDate.from = this.getDayFromMoment(selectedDate);\n innerDate.to = undefined;\n }\n\n this.emitRange(innerDate);\n }\n\n private emitRange(range: DayRange) {\n const newRange: DateRange = {};\n newRange.label = PeriodLabel.CUSTOM_PERIOD;\n\n if (range.from) {\n newRange.from = this.getDateFromDay(range.from);\n\n if (range.to) newRange.to = formatTo(moment.unix(range.to.timestamp));\n }\n\n this.dateChange.emit(newRange);\n }\n\n private handleSingleSelect(momentDate: moment.Moment) {\n this.innerDate = this.getDayFromMoment(momentDate);\n this.dateChange.emit(momentDate.format(DEFAULT_DATE_FORMAT));\n }\n}\n","<div class=\"date-picker-calendar-container\">\n <header class=\"month-selector\">\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(-1)\">\n <span class=\"material-icons icon\">chevron_left</span>\n </button>\n\n <span class=\"month-year-display\" data-testid=\"month-year-display\">{{ month }} {{ year }}</span>\n\n <button type=\"button\" class=\"selector-button\" (click)=\"incrementMonth(1)\">\n <span class=\"material-icons icon\">chevron_right</span>\n </button>\n </header>\n\n <main class=\"calendar\">\n <div class=\"week-days-header\">\n <span class=\"week-day\" *ngFor=\"let weekDay of weekDays\">{{ weekDay.name }}</span>\n </div>\n\n <div class=\"days-block\" data-testid=\"days-block\">\n <span\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [ngClass]=\"{\n 'day': true,\n 'another-month': monthNumber != day.month,\n 'selected': isDaySelected(day),\n 'first': isFirstSelectedDay(day),\n 'last': isLastSelectedDay(day),\n }\"\n >\n {{ day.day }}\n </span>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, OnInit, Output, Provider} from '@angular/core';\nimport moment from 'moment';\nimport {DatePickerValue, DateRange, PeriodLabel, formatFrom, formatTo} from \"./date-picker-calendar/date-picker-calendar.component\";\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from \"@angular/forms\";\n\ninterface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n selected: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\n\n\n@Component({\n selector: 'ask-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.scss'],\n providers: [ VALUE_ACCESSOR ],\n})\nexport class DatePickerComponent implements OnInit, ControlValueAccessor {\n\n periods: Array<Period> = [\n { label: PeriodLabel.TODAY, getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.YESTERDAY, getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }), selected: false },\n { label: PeriodLabel.LAST_7_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.LAST_30_DAYS, getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }), selected: false },\n { label: PeriodLabel.THIS_MONTH, getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('month')) }), selected: false },\n { label: PeriodLabel.LAST_QUARTER, getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('month')) }), selected: false },\n { label: PeriodLabel.CUSTOM_PERIOD, getRange: () => ({}), isCustomRange: true, selected: false },\n ];\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n isCustomRange = false;\n\n get from(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).from;\n }\n\n get to(): string | undefined {\n if (!this.isRange) {\n return;\n }\n\n return (this.date as DateRange).to;\n }\n\n get dateDisplay(): string {\n const from = this.from ? moment(this.from).format('L') : '';\n const to = this.to ? moment(this.to).format('L') : '';\n\n return `${from} ${ to ? '- ' + to : '' }`;\n }\n\n ngOnInit(): void {\n }\n\n selectPeriod(period: Period) {\n this.periods.forEach((period: Period) => period.selected = false);\n\n this.date = period.getRange();\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\n period.selected = true;\n\n if (!this.isCustomRange) {\n this.emitValue();\n }\n }\n\n handleDateChange(value: DatePickerValue) {\n this.date = value;\n\n if (!this.isRange) {\n this.emitValue();\n }\n }\n\n emitValue() {\n this.dateChange.emit(this.date);\n this.onChange(this.date);\n this.close.emit();\n }\n\n handleCancelClick() {\n this.close.emit();\n }\n\n private getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: PeriodLabel = PeriodLabel.TODAY) {\n return this.periods.find(p => p.label === periodName) ||\n this.periods.find(p => p.label === defaultPeriodName);\n }\n\n checkPeriodShouldBeSelectedByValue() {\n if (!this.isRange) {\n return;\n }\n\n this.periods.forEach((period: Period) => period.selected = false);\n const period = this.periods.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n period.selected = true;\n this.isCustomRange = period.isCustomRange || false;\n }\n\n writeValue(value: DatePickerValue) {\n if (this.isRange) {\n const valueRange = value as DateRange;\n\n if (valueRange.label && valueRange.label !== PeriodLabel.CUSTOM_PERIOD) {\n const period = this.getPeriodOrDefault(valueRange.label)?.getRange() || {};\n this.date = { ...period, label: valueRange.label };\n }\n\n else if (valueRange.from && valueRange.to) {\n this.date = { from: valueRange.from, to: valueRange.to, label: PeriodLabel.CUSTOM_PERIOD };\n }\n\n this.checkPeriodShouldBeSelectedByValue();\n }\n\n else {\n this.date = value;\n }\n }\n\n registerOnChange(fn: (value: DatePickerValue) => void): void {\n this.onChange = fn;\n }\n\n onChange = (value: DatePickerValue) => {};\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n onTouch = () => {};\n}\n","<div class=\"date-picker-container\">\n <main class=\"main-content\">\n <div\n class=\"periods-list\"\n *ngIf=\"isRange\"\n [ngClass]=\"{ 'show-divider': isCustomRange }\"\n >\n <button\n *ngFor=\"let period of periods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.selected }\"\n (click)=\"selectPeriod(period)\"\n >\n {{ period.label.toString() | translate }}\n </button>\n </div>\n\n <ask-date-picker-calendar\n *ngIf=\"!isRange || (isRange && isCustomRange)\"\n [date]=\"date\"\n (dateChange)=\"handleDateChange($event)\"\n [isRange]=\"isRange\"\n ></ask-date-picker-calendar>\n </main>\n\n <footer class=\"footer\" *ngIf=\"isCustomRange && isRange\">\n <div class=\"date-display\">{{ dateDisplay }}</div>\n\n <div class=\"button-tray\">\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'secondary'\"\n (click)=\"handleCancelClick()\"\n >\n {{ 'CANCEL' | translate }}\n </ask-button>\n\n <ask-button\n [size]=\"'xsmall'\"\n [type]=\"'primary'\"\n (click)=\"emitValue()\"\n >\n {{ 'APPLY' | translate }}\n </ask-button>\n </div>\n </footer>\n</div>\n","import { Component, ElementRef, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-skeleton',\n templateUrl: './skeleton.component.html',\n styleUrls: ['./skeleton.component.scss'],\n})\nexport class SkeletonComponent {\n @Input() barsHeight = 100;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n protected get barsCount(): number {\n const height = this.elementRef.nativeElement.clientHeight;\n return Math.round(height / this.barsHeight) || 1;\n }\n}\n","<ngx-skeleton-loader\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [count]=\"barsCount\"\n appearance=\"line\"\n animation=\"progress\"\n [theme]=\"{\n 'border-radius': '5px',\n height: barsHeight+'px',\n margin: 0,\n display: 'block',\n }\"\n></ngx-skeleton-loader>\n","import { NgModule } from '@angular/core';\nimport { ButtonComponent } from './components/button/button.component';\nimport { CommonModule } from '@angular/common';\nimport { InputComponent } from './components/input/input.component';\nimport { SelectComponent } from './components/select/select.component';\nimport { BoxComponent } from './components/box/box.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AvatarComponent } from './components/avatar/avatar.component';\nimport { DropdownContainerComponent } from './components/dropdown-container/dropdown-container.component';\nimport { AskDropdownDirective } from './directives/ask-dropdown.directive';\nimport { AutocompleteComponent } from './components/autocomplete/autocomplete.component';\nimport {\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n OverlayModule,\n} from '@angular/cdk/overlay';\nimport { ChipsComponent } from './components/chips/chips.component';\nimport { CheckboxComponent } from './components/checkbox/checkbox.component';\nimport { DatePickerComponent } from './components/date-picker/date-picker.component';\nimport { DatePickerCalendarComponent } from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { SkeletonComponent } from './components/skeleton/skeleton.component';\nimport { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n ScrollingModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n ],\n})\nexport class AsksuiteCitrusModule {}\n","/*\n * Public API Surface of asksuite-citrus\n */\n\nexport * from './lib/asksuite-citrus.module';\n\n// Components\nexport * from './lib/components/button/button.component'\nexport * from './lib/components/input/input.component'\nexport * from './lib/components/select/select.component'\nexport * from './lib/components/box/box.component'\nexport * from './lib/components/avatar/avatar.component'\nexport * from './lib/components/dropdown-container/dropdown-container.component'\nexport * from './lib/components/autocomplete/autocomplete.component'\nexport * from './lib/components/checkbox/checkbox.component'\nexport * from './lib/components/chips/chips.component'\nexport * from './lib/components/date-picker/date-picker.component'\nexport * from './lib/components/date-picker/date-picker-calendar/date-picker-calendar.component'\nexport * from './lib/components/skeleton/skeleton.component'\n\n// Directives\nexport * from './lib/directives/ask-dropdown.directive'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i2","i1","i3","i5.ChipsComponent","i6.CheckboxComponent","i2.ButtonComponent","i3.DatePickerCalendarComponent","i4"],"mappings":"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"}
|
@@ -50,12 +50,12 @@ export declare class AutocompleteComponent implements AfterViewInit, ControlValu
|
|
50
50
|
handleChipAction(option: any): void;
|
51
51
|
display(option: any): string | undefined;
|
52
52
|
getMoreItems(scrollIndex: number): void;
|
53
|
-
writeValue(obj: any[]): void;
|
53
|
+
writeValue(obj: any[] | any): void;
|
54
54
|
onChange: (_: any) => void;
|
55
55
|
registerOnChange(fn: any): void;
|
56
56
|
onTouched: () => void;
|
57
57
|
registerOnTouched(fn: any): void;
|
58
|
-
setDisabledState
|
58
|
+
setDisabledState(isDisabled: boolean): void;
|
59
59
|
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent, never>;
|
60
60
|
static ɵcmp: i0.ɵɵComponentDeclaration<AutocompleteComponent, "ask-autocomplete", never, { "filterFn": { "alias": "filterFn"; "required": false; }; "displayFn": { "alias": "displayFn"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "valueProp": { "alias": "valueProp"; "required": false; }; "options": { "alias": "options"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "selectAll": { "alias": "selectAll"; "required": false; }; }, {}, never, never, false, never>;
|
61
61
|
}
|