asksuite-citrus 3.16.9 → 3.16.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/esm2022/lib/components/accordion/extendable-panel/extendable-panel.component.mjs +2 -2
  2. package/esm2022/lib/components/arrow-tag/arrow-tag.component.mjs +2 -2
  3. package/esm2022/lib/components/autocomplete/autocomplete.component.mjs +2 -2
  4. package/esm2022/lib/components/avatar/avatar.component.mjs +2 -2
  5. package/esm2022/lib/components/box/box.component.mjs +2 -2
  6. package/esm2022/lib/components/button/button.component.mjs +2 -2
  7. package/esm2022/lib/components/character-counter/character-counter.component.mjs +2 -2
  8. package/esm2022/lib/components/checkbox/checkbox.component.mjs +2 -2
  9. package/esm2022/lib/components/chips/chips.component.mjs +2 -2
  10. package/esm2022/lib/components/date-picker/date-picker-calendar/date-picker-calendar.component.mjs +2 -2
  11. package/esm2022/lib/components/date-picker/date-picker.component.mjs +2 -2
  12. package/esm2022/lib/components/dropdown-container/dropdown-container.component.mjs +2 -2
  13. package/esm2022/lib/components/input/input.component.mjs +2 -2
  14. package/esm2022/lib/components/modal/confirmation-modal/confirmation-modal.component.mjs +2 -2
  15. package/esm2022/lib/components/modal/modal.component.mjs +2 -2
  16. package/esm2022/lib/components/pagination/pagination.component.mjs +2 -2
  17. package/esm2022/lib/components/phone-ddi/phone-ddi.component.mjs +2 -2
  18. package/esm2022/lib/components/richtext-toolbox/richtext-toolbox.component.mjs +2 -2
  19. package/esm2022/lib/components/richtext-url-prompt/richtext-url-prompt.component.mjs +2 -2
  20. package/esm2022/lib/components/select/select.component.mjs +2 -2
  21. package/esm2022/lib/components/tab-group/tab/tab.component.mjs +2 -2
  22. package/esm2022/lib/components/tab-group/tab-group.component.mjs +2 -2
  23. package/esm2022/lib/components/table/table.component.mjs +2 -2
  24. package/esm2022/lib/components/toast/toast.component.mjs +2 -2
  25. package/fesm2022/asksuite-citrus.mjs +48 -48
  26. package/fesm2022/asksuite-citrus.mjs.map +1 -1
  27. package/package.json +1 -1
  28. package/styles/colors-light.scss +1 -0
@@ -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/directives/autofocus/autofocus.directive.ts","../../../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/directives/tooltip/ask-tooltip.directive.ts","../../../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/classes/overlay.component.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/directives/scroll/scroll.directive.ts","../../../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/services/toast/toast.config.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast-ref.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.html","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.html","../../../projects/asksuite-citrus/src/lib/directives/badge/badge.directive.ts","../../../projects/asksuite-citrus/src/lib/components/icon/icon.component.ts","../../../projects/asksuite-citrus/src/lib/components/icon/icon.component.html","../../../projects/asksuite-citrus/src/lib/directives/button/ask-base-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-text-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-stroked-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/helpers/are-objects-equal.helper.ts","../../../projects/asksuite-citrus/src/lib/constants/url-regex.constant.ts","../../../projects/asksuite-citrus/src/lib/classes/richtext-wrapper.ts","../../../projects/asksuite-citrus/src/lib/constants/richtext-toolbox.constants.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt.component.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt.component.html","../../../projects/asksuite-citrus/src/lib/components/richtext-toolbox/richtext-toolbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-toolbox/richtext-toolbox.component.html","../../../projects/asksuite-citrus/src/lib/classes/toolbox.ts","../../../projects/asksuite-citrus/src/lib/classes/bubble-toolbox.ts","../../../projects/asksuite-citrus/src/lib/classes/topbar-toolbox.ts","../../../projects/asksuite-citrus/src/lib/directives/richtext-toolbox/richtext-toolbox.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/input/input.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/list-item/list-item.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.html","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-body.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-footer.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-header.directive.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.html","../../../projects/asksuite-citrus/src/lib/components/pagination/pagination.component.ts","../../../projects/asksuite-citrus/src/lib/components/pagination/pagination.component.html","../../../projects/asksuite-citrus/src/lib/components/table/table.component.ts","../../../projects/asksuite-citrus/src/lib/components/table/table.component.html","../../../projects/asksuite-citrus/src/lib/pipes/paginate/paginate.helper.ts","../../../projects/asksuite-citrus/src/lib/pipes/paginate/paginate.pipe.ts","../../../projects/asksuite-citrus/src/shared/helpers/filter.helper.ts","../../../projects/asksuite-citrus/src/shared/providers/flag.provider.ts","../../../projects/asksuite-citrus/src/shared/services/country-flag.service.ts","../../../projects/asksuite-citrus/src/shared/utils/regex.ts","../../../projects/asksuite-citrus/src/lib/helpers/phone.helper.ts","../../../projects/asksuite-citrus/src/lib/components/phone-ddi/phone-ddi.component.ts","../../../projects/asksuite-citrus/src/lib/components/phone-ddi/phone-ddi.component.html","../../../projects/asksuite-citrus/src/lib/pipes/force-break-line/force-break-line.pipe.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal-ref.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.config.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.service.ts","../../../projects/asksuite-citrus/src/lib/components/modal/confirmation-modal/confirmation-modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/confirmation-modal/confirmation-modal.component.html","../../../projects/asksuite-citrus/src/lib/components/loading-bar/loading-bar.component.ts","../../../projects/asksuite-citrus/src/lib/components/loading-bar/loading-bar.component.html","../../../projects/asksuite-citrus/src/lib/helpers/html-panel-quill-blot.helper.ts","../../../projects/asksuite-citrus/src/lib/components/tag/tag.component.ts","../../../projects/asksuite-citrus/src/lib/components/tag/tag.component.html","../../../projects/asksuite-citrus/src/lib/components/arrow-tag/arrow-tag.component.ts","../../../projects/asksuite-citrus/src/lib/components/arrow-tag/arrow-tag.component.html","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab/tab.component.ts","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab/tab.component.html","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab-group.component.ts","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab-group.component.html","../../../projects/asksuite-citrus/src/lib/directives/sizeable/sizeable.directive.ts","../../../projects/asksuite-citrus/src/lib/constants/icons.ts","../../../projects/asksuite-citrus/src/lib/services/storage/storage-util.service.ts","../../../projects/asksuite-citrus/src/lib/services/theme/theme.service.ts","../../../projects/asksuite-citrus/src/lib/services/custom-icon-register/custom-icon-register.service.ts","../../../projects/asksuite-citrus/src/lib/components/icon-v2/icon-v2.component.ts","../../../projects/asksuite-citrus/src/lib/components/icon-v2/icon-v2.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast.service.ts","../../../projects/asksuite-citrus/src/lib/services/dynamic-dropdown/dynamic-dropdown.service.ts","../../../projects/asksuite-citrus/src/shared/utils/phone-mask-pattern.ts","../../../projects/asksuite-citrus/src/lib/services/phone-ddi/phone-validation.service.ts","../../../projects/asksuite-citrus/src/shared/validators/phone-mask.validator.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' | 'livechat' | 'dropdown' | 'icon-only' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n @Input() loading: boolean = false;\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n buttonClasses: string = '-primary';\n labelClass: string = '';\n\n\n ngOnChanges(){\n this.buttonClasses = `-${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n this.labelClass = `-${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=\"spinner\" *ngIf=\"loading\" class=\"spinner\"></span>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {AfterViewInit, Directive, ElementRef, Input} from '@angular/core';\n\n@Directive({\n selector: '[askAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit{\n\n @Input() askAutofocus: boolean | string = true;\n\n constructor(private elRef: ElementRef) { }\n\n ngAfterViewInit() {\n if (this.elRef && (this.askAutofocus || this.askAutofocus === '')) this.elRef.nativeElement.focus();\n }\n\n}\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 ControlValueAccessor {\n _iconColor = '';\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() variation: 'filled' | 'outlined' = 'outlined'\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n @Input() noBorder: boolean = false;\n @Input() extraPadding: boolean = false;\n @Input() isClosed = true\n @Input() mask?: string;\n @Input() valuePrefix = ''\n @Input() autoFocus = false\n @Input() set iconColor(color: string) {\n this._iconColor = `var(--${color})`;\n }\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 onChange!: (value?: any) => void;\n onTouch!: () => void;\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n\n onModelChange(newValue: string) {\n if (this.value !== newValue) {\n this.writeValue(newValue);\n this.onChange && this.onChange(newValue);\n }\n this.onTouch && this.onTouch();\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 focusInput(): void {\n if (this.inputElement) {\n this.inputElement.nativeElement.focus();\n }\n }\n\n blurInput(): void {\n if (this.inputElement) {\n this.inputElement.nativeElement.blur();\n }\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\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","<div\n class=\"input-container\"\n [ngClass]=\"{\n 'focus': isFocused,\n 'disabled': disabled,\n 'left-icon': leftIcon,\n 'right-icon': rightIcon,\n }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n [style.color]=\"_iconColor\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [class.-no-border]=\"noBorder\"\n [class.-filled]=\"variation === 'filled'\"\n [class.-extra-padding]=\"extraPadding\"\n [class.-closed]=\"isClosed\"\n [class.-opened]=\"!isClosed\"\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 [mask]=\"mask\"\n [prefix]=\"valuePrefix\"\n [showMaskTyped]=\"!!mask\"\n [askAutofocus]=\"autoFocus\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n [style.color]=\"_iconColor\"\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, emit: boolean = true) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n\n if (emit) {\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 this.setSelectedOption(this.value, false);\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, HostBinding, 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 @HostBinding('style.background-color') @Input() backgroundColor = 'var(--secondary-background)';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\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","import { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[askTooltip]',\n providers: [\n MatTooltip\n ]\n})\nexport class AskTooltipDirective implements OnInit {\n\n @Input() askTooltipMessage: string = '';\n @Input() askTooltipPosition: TooltipPosition = 'below';\n\n constructor(private tooltip: MatTooltip) { }\n\n ngOnInit(): void {\n this.tooltip.position = this.askTooltipPosition;\n this.tooltip.tooltipClass = ['ask-tooltip', `-${this.askTooltipPosition}`];\n this.tooltip.touchGestures = 'off';\n }\n \n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.askTooltipMessage) return;\n \n this.tooltip.message = this.askTooltipMessage;\n this.tooltip.show();\n }\n \n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltip.hide();\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent',\n OFFLINE = 'offline'\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 @Input() background: 'primary' | 'secondary' | 'white' | 'dark' = \"primary\";\n @Input() textColor: 'text-white' | 'text-black' = 'text-white'\n @Input() avatarTitle: string = '';\n @Input() avatarTitlePosition: TooltipPosition = 'after';\n @Input() statusTitle: string = '';\n @Input() large?: boolean;\n @Input() small?: boolean;\n @Input() medium?: boolean;\n @Input() selected?: boolean;\n @Input() notSelect: boolean = false;\n @Input() hover?: boolean;\n @Input() isRobot?: boolean;\n @Input() isDisable?: boolean;\n\n @Input()\n set name(value: string) {\n if (value) {\n this._initials = this.generateName(value)\n if (this.background != 'white') {\n this.background = 'dark'\n }\n } else {\n this._initials = '';\n }\n };\n\n private generateName(name: string): string {\n const nameParts = name.trim().split(' ');\n const firstInitial = nameParts[0].toUpperCase().charAt(0);\n const lastInitial = nameParts.length > 1 ? nameParts[nameParts.length - 1].toUpperCase().charAt(0) : '';\n return `${firstInitial}${lastInitial}`;\n }\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n protected _initials = '';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\"\n [ngClass]=\"{\n '-primary': !this.src && background === 'primary',\n '-secondary': !this.src && background === 'secondary',\n '-dark': !this.src && background === 'dark',\n '-white': !this.src && background === 'white',\n '-initials': !!_initials,\n '-large': !!large,\n '-small': !!small,\n '-medium': !!medium,\n '-selected': !!selected && !notSelect,\n '-hover': !!hover && !notSelect,\n }\"\n>\n <img\n *ngIf=\"src || isRobot || !_initials\"\n [src]=\"image\"\n alt=\"avatar\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n [ngClass]=\"{ 'disabled': isDisable }\"\n />\n <span\n *ngIf=\"!src && !isRobot && _initials\"\n class=\"initials\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n [ngClass]=\"{textColor, '-small': !!small, '-medium': !!medium}\"\n >{{_initials}}</span>\n\n <span\n [class]=\"'status ' + status\"\n askTooltip\n [askTooltipMessage]=\"statusTitle\"\n [askTooltipPosition]=\"'after'\"\n ></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{\n @Input() content!: TemplateRef<any>;\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n HostListener,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class OverlayComponent {\n private overlayRef: OverlayRef | undefined;\n private portal: TemplatePortal<any> | undefined;\n private readonly DEFAULT_MAX_HEIGHT = 300;\n\n protected constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('window:mousedown', ['$event'])\n handleClick(event: MouseEvent) {\n this.shouldClose(event) && this.close();\n }\n\n abstract shouldClose(event: Event): boolean;\n\n abstract afterClosed(): void;\n\n protected open(\n wrapper: ElementRef,\n overlayContent: TemplateRef<any>,\n config?: Partial<OverlayConfig>\n ) {\n this.overlayRef = this.getOverlayConfig(wrapper, config);\n if (!this.portal) {\n this.portal = new TemplatePortal(overlayContent, this.viewContainerRef);\n }\n this.overlayRef?.attach(this.portal);\n }\n\n protected close() {\n this.overlayRef?.detach();\n this.afterClosed();\n }\n\n private getOverlayConfig(\n wrapper: ElementRef,\n config?: Partial<OverlayConfig>\n ) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(wrapper.nativeElement);\n const biggerThanScreen = this.biggerThanScreen(wrapper.nativeElement);\n\n if (biggerThanScreen) {\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]);\n } else\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n ...config,\n });\n }\n\n private biggerThanScreen(wrapper: HTMLElement) {\n const { y, height } = wrapper.getBoundingClientRect();\n\n return y + this.DEFAULT_MAX_HEIGHT + height > document.body.offsetHeight;\n }\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, 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 changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipsComponent {\n protected textColor = ''\n\n private colors = [\n { background: '#CDF9F3', textColor: '#118C7B' },\n { background: '#D4DAF3', textColor: '#465DBE' },\n { background: '#CEEEAA', textColor: '#64952D' },\n { background: '#FBC5FF', textColor: '#B916C5' },\n { background: '#FED5C9', textColor: '#9B3F24' },\n { background: '#DDBFE5', textColor: '#723A81' },\n { background: '#FFE0B2', textColor: '#8F6322' },\n { background: '#B2E5FD', textColor: '#286E8F' },\n { background: '#EFC89C', textColor: '#795731' },\n { background: '#E4E7EB', textColor: '#4F5A6A' },\n { background: '#FACDD2', textColor: '#D02A3D' },\n { background: '#D7CDC8', textColor: '#7B665C' }\n ];\n\n @Input()\n set appearance(value: 'light' | 'regular' | 'primary' | 'tag' | 'disable' | 'available' | 'tagList') {\n this._isAppearanceLight = value === 'light';\n this._isAppearancePrimary = value === 'primary'\n this._isAppearanceTag = value === 'tag'\n this._isAppearanceTagDisabled = value === 'disable'\n this._isAppearanceTagAvailable = value === 'available'\n this._isAppearanceTagList = value === 'tagList'\n };\n @Input()\n showAction: boolean = false;\n @Input()\n set size(value: 'small' | 'regular') {\n this._isSmall = value === \"small\";\n };\n\n @Input() color?: string;\n @Input() autoComplete = false;\n\n protected _isSmall = false;\n protected _isAppearanceLight = false;\n protected _isAppearancePrimary = false;\n protected _isAppearanceTag = false;\n protected _isAppearanceTagDisabled = false;\n protected _isAppearanceTagAvailable = false;\n protected _isAppearanceTagList = false;\n\n constructor(private change: ChangeDetectorRef) {}\n\n @Output()\n protected action = new EventEmitter<void>()\n\n ngOnChanges(){\n this.textColor = this.colors.find(c => c.background == this.color?.toUpperCase())?.textColor || '#132939CF';\n this.change.markForCheck();\n }\n}\n","<div class=\"chip-container\"\n [ngClass]=\"{\n '-action': showAction,\n '-small': _isSmall,\n '-light': _isAppearanceLight,\n '-primary': _isAppearancePrimary,\n '-tag': _isAppearanceTag,\n '-disabled': _isAppearanceTagDisabled,\n '-available': _isAppearanceTagAvailable,\n '-tag-list' : _isAppearanceTagList\n }\"\n [style.background-color]=\"color\"\n [style.color]=\"_isAppearanceTagDisabled || _isAppearanceTagAvailable ? textColor : ''\"\n>\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\" *ngIf=\"showAction\">\n <span class=\"material-icons\" [ngClass]=\"{'-auto-complete': autoComplete}\" data-testid=\"icon\" (click)=\"$event.stopPropagation(); action.emit()\">close</span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider\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(() => 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.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(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 }\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 {Directive, ElementRef, EventEmitter, HostListener, Input, Output} from '@angular/core';\n\n@Directive({\n selector: '[askScroll]'\n})\nexport class ScrollDirective {\n @Input() askScrollThreshold: number = 0;\n\n @Output() scrollEnd = new EventEmitter<void>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener('scroll', ['$event'])\n onScroll(event: Event) {\n const element = event.target as HTMLElement;\n if (this.isScrollAtEnd(element)) {\n this.scrollEnd.emit();\n }\n }\n\n private isScrollAtEnd(element: HTMLElement): boolean {\n const scrollTop = element.scrollTop || element.scrollTop === 0 ? element.scrollTop : 0;\n const scrollHeight = element.scrollHeight || 0;\n const clientHeight = element.clientHeight || 0;\n return scrollTop + clientHeight >= (scrollHeight - Number(this.askScrollThreshold));\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n OnChanges,\n Output,\n Provider,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, fromEvent, map, Subscription, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { TranslateService } from '@ngx-translate/core';\nimport {OverlayComponent} from \"../../classes/overlay.component\";\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 extends OverlayComponent implements AfterViewInit, ControlValueAccessor, OnChanges {\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 fixedOptionsItems: any[] = [];\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected selection: any[] = [];\n protected closed = true;\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n protected showChips = false;\n protected showAllSelectionBtn = false;\n protected showPlaceholder = false;\n protected showExpandedSelectionActions = false;\n protected showSelectAllCheckbox = false;\n protected chipsContainerClasses = {\n \"-two\": false,\n \"-three\": false,\n \"-four\": false,\n \"-many\": false\n };\n protected optionsSelected: {[key: string | number]: boolean} = {}\n private changed = 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 _selectAllMessage = '';\n\n private scrollSub?: Subscription;\n\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 maxOptions = 0;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n fixedOptions: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'NO_OPTIONS';\n\n @Input()\n selectAll = false\n\n @Input()\n allOptionsSelectedText: string | null = null;\n\n @Input()\n selectAllMessage = this.translate.instant('SELECT_ALL');\n\n @Input()\n iconPropReference?: string;\n\n @Input()\n enableRemove = true;\n\n @Input()\n title?: string;\n\n position: 'above' | 'below' = 'below';\n\n @Output()\n itemCheck = new EventEmitter();\n\n @Output()\n selectionDone = new EventEmitter();\n\n @Output()\n optionRemoved = new EventEmitter();\n\n constructor(private formBuilder: FormBuilder,\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef,\n private translate: TranslateService) {\n super(overlay, viewContainerRef);\n }\n\n ngAfterViewInit() {\n this.checkAllValue = this.isAllOptionsSelected\n this.checkFixedOptions();\n this.handleInputChange();\n this.title = this.selectedOption?.name || ''\n }\n\n private checkFixedOptions() {\n this.fixedOptionsItems = this.options.filter(option => this.fixedOptions.includes(option[this.valueProp]));\n }\n\n get isAllOptionsSelected() {\n return this.selection.length === this.options.length\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['options']) {\n this._pageNumber = 1\n this.paginatedFilteredOptions = []\n\n this.filteredOptions = changes['options'].currentValue\n .filter((option: any) => !this.fixedOptions.includes(option[this.valueProp]))\n this.updateValidation()\n }\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n tap(() => {\n this._pageNumber = 1\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items.filter((option: any) => !this.fixedOptions.includes(option[this.valueProp]))\n this.getMoreItems()\n })\n }\n\n private handleSelectionChange(values: any[]) {\n this.selection = values\n this.checkAllValue = this.isAllOptionsSelected\n\n if (!this.chipsCollapsed) {\n this.chipsCollapsed = this.selection.length < 2\n }\n this.updateValidation()\n this.change.detectChanges()\n }\n\n private updateChipsContainerClasses() {\n this.chipsContainerClasses = {\n \"-two\": this.selectedOptions.length === 2,\n \"-three\": this.selectedOptions.length === 3,\n \"-four\": this.selectedOptions.length === 4,\n \"-many\": this.selectedOptions.length >= 5\n }\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.close()\n this.change.detectChanges();\n\n if(item.name) this.title = item.name;\n }\n\n handleAutocompleteClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.chipsCollapsed = true;\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n this.updateValidation();\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n protected handleChipsListActionClick(event: Event) {\n event.stopPropagation()\n this.chipsCollapsed = !this.chipsCollapsed;\n this.updateValidation()\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n this.changed = true\n }\n\n showOptions() {\n if (this.closed && this.wrapper && this.overlayContent) {\n this.open(this.wrapper, this.overlayContent, {\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n hasBackdrop: true,\n });\n this.closed = false;\n }\n\n this.updateValidation();\n if (this.paginatedFilteredOptions.length === 0) this.getMoreItems()\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this.change.detectChanges()\n this._pageNumber = 1;\n this.paginatedFilteredOptions = [];\n this.updateValidation();\n this.scrollSub?.unsubscribe();\n if (this.changed)\n this.selectionDone.emit();\n this.changed = false\n this.inputControl.patchValue(\"\");\n }\n\n override afterClosed() {\n this.hideOptions()\n this.change.detectChanges()\n }\n\n override shouldClose(event: Event): boolean {\n return !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target);\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n return this.chipsCollapsed\n ? this.selection.slice(0, 1)\n : this.selection;\n }\n\n handleSelectAll(checked: boolean) {\n this.selectAllOptions(checked);\n this.selection = checked ? this.options : []\n this.onChange(this.selection)\n this.updateValidation()\n this.change.detectChanges()\n this.itemCheck.emit(this.selection);\n this.changed = true\n }\n\n valueChange(option: any, value: boolean) {\n if (this.shouldProcessMaxOptions(option, value)) {\n return\n }\n\n this.optionsSelected[option[this.valueProp]] = value;\n this.selection = this.options.filter(o => this.optionsSelected[o[this.valueProp]]);\n this.checkAllValue = this.selection.length === this.options.length;\n this.onChange(this.selection);\n this.onTouched();\n\n this.updateChipsContainerClasses();\n this.updateValidation();\n this.change.detectChanges();\n this.itemCheck.emit(this.selection);\n this.changed = true;\n }\n\n shouldProcessMaxOptions(option: any, value: boolean) {\n if(this.maxOptions) {\n const isAlreadySelected = this.optionsSelected[option[this.valueProp]];\n\n if (value && this.selection.length >= this.maxOptions && !isAlreadySelected) {\n\n const checkbox = event!.target as HTMLInputElement;\n\n setTimeout(() => {\n checkbox.checked = false;\n this.change.detectChanges();\n }, 0);\n\n return true;\n }\n }\n return false;\n }\n\n selectAllOptions(selected: boolean) {\n this.optionsSelected = this.options\n .reduce((acc, curr) => {\n acc[curr[this.valueProp]] = selected\n return acc;\n }, {} as { [key: string]: boolean })\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.optionsSelected[option[this.valueProp]] = false\n this.selection = this.selection.filter(selectedOption =>\n selectedOption[this.valueProp] !== option[this.valueProp])\n this.onChange(this.selection)\n this.optionRemoved.emit(option)\n } else {\n this.selectedOption = null;\n this.onChange([])\n }\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems() {\n const sortedFilteredOptions = [...this.filteredOptions];\n\n this.sortSelectedFirst(sortedFilteredOptions, this.selection, this.valueProp)\n const nextPageItems = sortedFilteredOptions\n .slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber\n );\n\n if (nextPageItems.length) {\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n }\n this.updateValidation();\n this.change.detectChanges()\n }\n\n sortSelectedFirst(items: Array<any>, selectedItems: Array<any>, prop: string) {\n items.sort((a, b) => {\n const aIsSelected = selectedItems.some(item => item[prop] === a[prop]);\n const bIsSelected = selectedItems.some(item => item[prop] === b[prop]);\n\n if (aIsSelected && !bIsSelected) {\n return -1;\n } else if (!aIsSelected && bIsSelected) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateValidation() {\n this.checkAllValue = this.isAllOptionsSelected\n this.showChips = Boolean(this.selectedOptions.length) && this.closed && (\n !this.multiple || !this.checkAllValue || (this.checkAllValue && !Boolean(this.allOptionsSelectedText))\n );\n this.showAllSelectionBtn = this.multiple && Boolean(this.selection.length > 1) && this.chipsCollapsed;\n this.showPlaceholder = this.closed && (\n !this.selectedOptions.length || (this.checkAllValue && Boolean(this.allOptionsSelectedText) && this.multiple)\n );\n this.showExpandedSelectionActions = this.multiple && !this.chipsCollapsed;\n this.showSelectAllCheckbox = Boolean(this.paginatedFilteredOptions.length) && this.selectAll;\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[] | any): void {\n this.selection = [];\n if (this.multiple && Array.isArray(obj)) {\n this.optionsSelected = {}\n obj.forEach(option => this.optionsSelected[option[this.valueProp]] = true)\n } else {\n this.selectedOption = obj;\n this.updateValidation();\n }\n\n if (this.multiple) {\n this.handleSelectionChange(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\n class=\"autocomplete-wrapper\"\n data-testid=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n [class.-multiple]=\"multiple\"\n [class.-with-selection]=\"selection.length > 0 && !isAllOptionsSelected\"\n [class.-below]=\"position === 'below'\"\n [class.-above]=\"position === 'above'\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input\n class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"\n />\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div\n class=\"chip-list\"\n [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\"\n *ngIf=\"multiple; else singleSelection\"\n >\n <ask-chips\n [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"enableRemove\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\"\n [autoComplete]=\"true\"\n >\n {{ display(option) }}\n </ask-chips>\n <span\n class=\"expand\"\n data-testid=\"see-more\"\n *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n +{{ selection.length - 1 }}\n </span>\n </div>\n </ng-container>\n <span\n class=\"empty-placeholder\"\n data-testid=\"placeholder\"\n *ngIf=\"showPlaceholder\"\n >\n {{\n checkAllValue && allOptionsSelectedText\n ? allOptionsSelectedText\n : placeholder\n }}\n </span>\n </ng-template>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span\n class=\"see-more\"\n data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n {{ \"SEE_LESS\" | translate }}\n </span>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\"\n [class.-multiple]=\"multiple\"\n [class.-below]=\"position === 'below'\"\n [class.-above]=\"position === 'above'\"\n >\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\" (scrollEnd)=\"getMoreItems()\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div\n class=\"option-item\"\n [class.-highlighted]=\"\n selectedOption && selectedOption[valueProp] === option[valueProp]\n \"\n (click)=\"handleOptionSelected(option)\"\n >\n <p class=\"text\">{{ display(option) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox\n (valueChange)=\"handleSelectAll($event)\"\n [(ngModel)]=\"checkAllValue\"\n >{{selectAllMessage}}</ask-checkbox\n >\n </div>\n\n <ng-container *ngFor=\"let option of fixedOptionsItems\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n\n <div\n askScroll\n [askScrollThreshold]=\"50\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\"\n >\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{\n emptyMessage | translate\n }}</span>\n </div>\n</ng-template>\n\n<ng-template #singleSelection>\n <span data-testid=\"selected-option\" class=\"selected-option\" title=\"{{display(selectedOptions[0])}}\">{{display(selectedOptions[0])}}</span>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport type PeriodLabel =\n 'TODAY'\n | 'YESTERDAY'\n | 'LAST_7_DAYS'\n | 'LAST_30_DAYS'\n | 'THIS_MONTH'\n | 'LAST_QUARTER'\n | 'CUSTOM_PERIOD'\n | string;\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n isFuture: boolean;\n disabled: boolean;\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() disableFutureDate: boolean = false;\n @Input() disableTodayAndFuture: boolean = false;\n @Input() minDate?: Date;\n @Input() maxDate?: Date;\n\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: receivedDate.label || 'CUSTOM_PERIOD'\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 isFuture: this.isFutureDate(day.unix()),\n disabled: this.shouldDisableDate(day.unix()),\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) return this.handleRangeSelect(momentDate);\n this.handleSingleSelect(momentDate);\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n if (!innerDate.from) {\n // First selection\n innerDate.from = this.getDayFromMoment(selectedDate);\n } else if (!innerDate.to) {\n // Second selection\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n if (selectedDate.isBefore(actualFrom, 'day')) {\n // Selected date is past the previous selected date\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n } else {\n // Selected date is future of the previous selected date\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n else {\n // Selection when both from and to are already selected\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 = '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 else newRange.to = formatTo(moment.unix(range.from.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 public isFutureDate(timestamp: number) {\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isAfter(now);\n }\n\n public isTodayDate(timestamp: number) {\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isSame(now, 'day');\n }\n\n private isBeforeMin(timestamp: number): boolean {\n if (!this.minDate) return false;\n\n return timestamp < this.minDate.getTime() / 1000;\n }\n\n private isPastMax(timestamp: number): boolean {\n if (!this.maxDate) return false;\n\n return timestamp > this.maxDate.getTime() / 1000;\n }\n\n public shouldDisableDate(timestamp: number): boolean {\n if (this.minDate && this.isBeforeMin(timestamp)) {\n return true;\n }\n\n if (this.maxDate && this.isPastMax(timestamp)) {\n return true;\n }\n\n if (this.disableTodayAndFuture) {\n return this.isFutureDate(timestamp) || this.isTodayDate(timestamp);\n }\n\n if (this.disableFutureDate) {\n return this.isFutureDate(timestamp);\n }\n\n return false;\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\n type=\"button\"\n class=\"selector-button\"\n (click)=\"incrementMonth(1)\"\n >\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 <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.disabled\"\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 </button>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, 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\nexport interface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\nexport const DEFAULT_PERIODS: Array<Period> = [\n { label: 'TODAY', getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }) },\n { label: 'YESTERDAY', getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }) },\n { label: 'LAST_7_DAYS', getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }) },\n { label: 'LAST_30_DAYS', getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }) },\n { label: 'THIS_MONTH', getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('day')) }) },\n { label: 'LAST_QUARTER', getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('day')) }) },\n { label: 'CUSTOM_PERIOD', getRange: () => ({}), isCustomRange: true },\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 ControlValueAccessor {\n\n private _periods: Array<Period> = DEFAULT_PERIODS;\n\n @Input() set periods(newPeriods: Array<Period>) {\n if (!newPeriods || newPeriods.length === 0) {\n console.error('Periods must be an array with at least one valid period');\n return;\n }\n\n this._periods = newPeriods;\n }\n\n get periods() {\n return this._periods;\n }\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() disableTodayAndFuture: boolean = false;\n @Input() periodsFilter: PeriodLabel[] = [];\n @Input() applyClickValidatorFn?: (date: DatePickerValue) => boolean;\n @Input() minDate?: Date;\n @Input() maxDate?: Date;\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n selectedPeriod?: Period;\n isCustomRange = false;\n\n get filteredPeriods() {\n if (!this.periodsFilter?.length) {\n return this.periods;\n }\n\n return this.periods.filter(p => this.periodsFilter.includes(p.label));\n }\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 selectPeriod(period: Period) {\n this.selectedPeriod = period;\n\n this.date = {\n ...(this.date as DateRange),\n ...period.getRange()\n };\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\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 protected handleApplyClick() {\n if (this.applyClickValidatorFn && !this.applyClickValidatorFn(this.date)) return;\n\n this.emitValue();\n }\n\n emitValue() {\n if (this.isCustomRange && !(this.date as DateRange).to) {\n (this.date as DateRange).to = (this.date as DateRange).from;\n }\n\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 public getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: 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 const period = this.periods.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n this.selectedPeriod = period;\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 !== '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: '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 filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\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 [disableFutureDate]=\"disableFutureDate\"\n [disableTodayAndFuture]=\"disableTodayAndFuture\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\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)=\"handleApplyClick()\"\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 @Input() radius = 5;\n @Input() customTheme: Record<string, any> = {}\n @Input() appearance: 'line' | 'circle' = 'line';\n public barsCount = 0;\n protected baseTheme = {\n 'border-radius': '',\n height: '100px',\n margin: 0,\n display: 'block',\n }\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n const height = this.elementRef.nativeElement.clientHeight;\n this.barsCount = Math.round(height / this.barsHeight) || 1;\n this.baseTheme = {\n ...this.baseTheme,\n ...(this.appearance !== 'circle' && { 'border-radius': '5px' }),\n ...this.customTheme,\n }\n }\n}\n","<ngx-skeleton-loader\n [count]=\"barsCount\"\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [appearance]=\"appearance\"\n animation=\"progress\"\n [theme]=\"baseTheme\"\n></ngx-skeleton-loader>\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ToastType = 'success' | 'warning' | 'danger' | 'info';\n\nexport interface ToastData {\n type: ToastType;\n message: string;\n config?: ToastConfig;\n text?: string;\n}\n\nexport interface ToastConfig {\n timeout?: number;\n width?: number;\n}\n\nexport const ASK_TOAST_CONFIG = new InjectionToken<ToastData>('Default toast options');\n","import {OverlayRef} from \"@angular/cdk/overlay\";\n\nexport class ToastRef {\n constructor(readonly overlay: OverlayRef) {\n }\n\n close() {\n this.overlay.dispose();\n }\n\n getPosition(): DOMRect {\n return this.overlay.overlayElement.getBoundingClientRect();\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from '../../services/toast/toast.config';\nimport {ToastRef} from \"../../services/toast/toast-ref\";\n\n\n@Component({\n selector: 'ask-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n message = '';\n text = '';\n icon = 'check_small';\n timeoutRef!: number;\n config: ToastConfig = {\n timeout: 5000,\n width: 220\n }\n\n @HostBinding('style.background-color') color = 'var(--success-green)';\n @HostBinding('style.color') fontColor = 'var(--white)';\n @HostBinding('class.closing') isClosing = false;\n @HostBinding('style.width') width = '220px';\n\n private readonly TYPES: { [key in ToastType]: { color: string; icon: string; fontColor: string; } } = {\n success: { color: 'var(--success-green)', icon: 'check_small', fontColor: 'var(--white)' },\n warning: { color: 'var(--color-background-warning-contrast-default)', icon: 'warning', fontColor: 'var(--color-texticon-black-default)' },\n danger: { color: 'var(--error-red)', icon: 'error', fontColor: 'var(--white)' },\n info: { color: 'var(--facebook-blue)', icon: 'info', fontColor: 'var(--white)' },\n }\n\n constructor(\n @Inject(ASK_TOAST_CONFIG) readonly data: ToastData,\n private ref: ToastRef\n ) {\n this.message = data.message;\n this.text = data.text || '';\n this.type = data.type;\n this.config = {\n ...this.config,\n ...data.config\n }\n if (this.config?.width) {\n this.width = `${this.config.width}px`;\n }\n }\n\n @Input() set type(type: 'success' | 'warning' | 'danger' | 'info' | ToastType) {\n this.icon = this.TYPES[type].icon;\n this.fontColor = this.TYPES[type].fontColor;\n this.color = this.TYPES[type].color;\n }\n\n ngOnInit() {\n if (this.config?.timeout) {\n this.timeoutRef = setTimeout(() => this.close(), this.config.timeout) as unknown as number;\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.timeoutRef);\n }\n\n close() {\n this.isClosing = true;\n\n setTimeout(() => this.ref.close(), 250);\n }\n}\n","<span class=\"material-icons icon\">\n {{ icon }}\n</span>\n\n<div class=\"content\">\n <p class=\"message\">\n {{ message }}\n </p>\n <p class=\"text\" *ngIf=\"text\">\n {{ text }}\n </p>\n</div>\n\n\n<button type=\"button\" class=\"close-icon\" (click)=\"close()\">\n <span class=\"material-icons icon\" [style.color]=\"fontColor\">close</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { SpinnerSize } from './spinner-size.type';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent {\n sizeClass: { [key: string]: boolean } = {};\n\n @Input() set size(newSize: SpinnerSize) {\n this.sizeClass = { [`-${newSize}`]: true };\n }\n @Input() color: string = '';\n}\n","<span\n class=\"spin-circle\"\n [ngClass]=\"sizeClass\"\n [ngStyle]=\"{\n 'border-color': color\n }\"\n></span>","import {Directive, ElementRef, Inject, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {DOCUMENT} from \"@angular/common\";\n\n@Directive({\n selector: '[askBadge]'\n})\nexport class BadgeDirective implements OnChanges, OnDestroy {\n\n @Input()\n askBadge: number | null = null;\n\n @Input()\n badgePosition: 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' = 'top-right';\n\n @Input()\n badgeCustomClasses?: string;\n\n @Input()\n badgeVariant: 'secondary' | 'primary' = 'primary';\n\n @Input()\n badgeSize: 'regular' | 'large' | 'small' = 'regular';\n\n badgeElement: HTMLElement | null = null;\n\n constructor(private elRef: ElementRef, @Inject(DOCUMENT) private document: Document) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('askBadge' in changes) {\n const value = `${changes['askBadge'].currentValue}`.trim();\n if (value?.length > 0) {\n this.updateBadgeText(value)\n }\n }\n }\n\n ngOnDestroy() {\n if (this.badgeElement) {\n this.badgeElement.remove();\n }\n }\n\n private updateBadgeText(value: string) {\n if (!this.badgeElement && value !== '0') {\n this.badgeElement = this.createBadge(value);\n } else if (this.badgeElement && value !== '0') {\n this.badgeElement.textContent = value;\n } else if (this.badgeElement) {\n this.badgeElement.classList.add('scale-out-center');\n setTimeout(() => {\n this.badgeElement?.remove();\n this.badgeElement = null;\n }, 300)\n }\n }\n\n private createBadge(value: string): HTMLElement {\n const badgeElement = this.document.createElement(\"span\");\n this.addClasses(badgeElement);\n badgeElement.textContent = value;\n this.elRef.nativeElement.classList.add(\"ask-badge\");\n this.elRef.nativeElement.appendChild(badgeElement);\n return badgeElement;\n }\n\n private addClasses(badgeElement: HTMLElement) {\n const [vPos, hPos] = this.badgePosition.split(\"-\");\n badgeElement.classList.add(\"badge\", `-${vPos}`, `-${hPos}`, 'scale-in-center');\n if (this.badgeCustomClasses) {\n const customClasses = this.badgeCustomClasses.split(\" \");\n badgeElement.classList.add(...customClasses);\n }\n badgeElement.classList.add(`-${this.badgeVariant}`);\n badgeElement.classList.add(`-${this.badgeSize}`);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-icon',\n standalone: true,\n imports: [],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconComponent {\n @Input({ required: true })\n name = '';\n\n protected get path() {\n return `../assets/icons/${this.name}.svg`;\n }\n}\n","<img data-testid='img' [src]=\"path\" [alt]=\"name\" />\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { IconComponent } from '../../components/icon/icon.component';\n\n@Directive()\nexport abstract class AskBaseButtonDirective implements OnChanges {\n @Input()\n color: ButtonColor = 'primary';\n\n @Input()\n size: ButtonSize = 'default';\n\n @Input()\n icon = '';\n\n @HostBinding('class')\n private className = ''\n\n private iconComponentRef?: ComponentRef<IconComponent>\n\n constructor(\n className: string,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private renderer: Renderer2\n ) {\n this.className = className;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color']) {\n this.updateColor();\n }\n\n if (changes['size']) {\n this.updateSize();\n }\n\n if (changes['icon']) {\n this.updateIcon();\n }\n }\n\n private updateColor() {\n const element: HTMLElement = this.el.nativeElement;\n\n element.classList.remove('-primary', '-secondary');\n if (this.color) {\n element.classList.add('-' + this.color);\n }\n }\n\n private updateSize() {\n const element: HTMLElement = this.el.nativeElement;\n\n element.classList.remove('-small', '-xsmall');\n if (this.size) {\n element.classList.add('-' + this.size);\n }\n }\n\n private updateIcon() {\n // Remove existing icon component if it exists\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n this.iconComponentRef = undefined;\n }\n\n if (this.icon) {\n this.iconComponentRef =\n this.viewContainerRef.createComponent(IconComponent);\n this.iconComponentRef.instance.name = this.icon;\n this.renderer.insertBefore(\n this.el.nativeElement,\n this.iconComponentRef.location.nativeElement,\n this.el.nativeElement.firstChild\n );\n }\n }\n}\n\ntype ButtonSize =\n | 'x-large'\n | 'large'\n | 'default'\n | 'medium'\n | 'small'\n | 'mini'\n | 'x-mini';\nexport type ButtonAppearance = 'outline' | 'text' | 'default';\nexport type ButtonColor = 'primary' | 'secondary' | 'danger';\n","import { Directive, ElementRef, Renderer2, ViewContainerRef} from '@angular/core';\nimport {AskBaseButtonDirective} from \"./ask-base-button.directive\";\n\n@Directive({\n selector: 'button[askTextButton]'\n})\nexport class AskTextButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-text-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { AskBaseButtonDirective } from './ask-base-button.directive';\n\n@Directive({\n selector: 'button[askButton]',\n})\nexport class AskButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { AskBaseButtonDirective } from './ask-base-button.directive';\n\n@Directive({\n selector: 'button[askStrokedButton]',\n})\nexport class AskStrokedButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-stroked-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\nimport { SpinnerSize } from './spinner-size.type';\n\n@Directive({\n selector: '[askSpinner]',\n})\nexport class SpinnerDirective {\n private shouldShow = false;\n spinner: ComponentRef<SpinnerComponent> | undefined;\n\n @Input('askSpinner')\n set nbSpinner(val: boolean) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n @Input() spinnerSize: SpinnerSize = 'small'\n @Input() spinnerBlur = true\n @Input() spinnerColor: string = ''\n\n @HostBinding('class.nb-spinner-container') isSpinnerExist = false;\n\n constructor(\n private directiveView: ViewContainerRef,\n private renderer: Renderer2,\n private directiveElement: ElementRef\n ) {}\n\n ngOnInit() {\n if (this.shouldShow) {\n this.show();\n }\n }\n\n hide() {\n if (this.isSpinnerExist) {\n this.directiveView.remove();\n this.isSpinnerExist = false;\n }\n }\n\n show() {\n if (!this.isSpinnerExist) {\n this.spinner = this.directiveView.createComponent(SpinnerComponent);\n this.spinner.instance.size = this.spinnerSize\n this.spinner.instance.color = this.spinnerColor\n this.spinner.changeDetectorRef.detectChanges();\n if (this.spinnerBlur) {\n this.directiveElement.nativeElement.classList.add('-blur')\n }\n this.renderer.setStyle(this.directiveElement.nativeElement, 'position', 'relative');\n this.renderer.appendChild(\n this.directiveElement.nativeElement,\n this.spinner.location.nativeElement\n );\n this.isSpinnerExist = true;\n }\n }\n}\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output,\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\";\nimport {fromEvent, Observable, Subscription} from \"rxjs\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown?: TemplateRef<any>;\n @Input() dropdownName = '';\n @Input() positions?: Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n @Input() dropdownDisabled = false;\n @Input() dropdownOpenOnHover: boolean = false;\n @Input() mouseThreshold = 300;\n @Input() openStrategy: 'click' | 'hover' = 'click' \n @Output() askDropdownOnClose = new EventEmitter();\n private mouseLocation: {mouseX: number; mouseY: number} = {mouseX: 0, mouseY: 0};\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\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.reposition();\n\n this.overlayConfig = {\n hasBackdrop: this.dropdownOpenOnHover ? false : 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 if (this.positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof this.positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[this.positions]);\n }\n\n else if (Array.isArray(this.positions)) {\n chosenPositions = [...this.positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\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 ngOnDestroy(){\n this.close();\n }\n\n @HostListener('mouseenter')\n public showOnHoverIn() {\n if (this.dropdownOpenOnHover) {\n\n this.show();\n this.mouseLocation = this.onMouseMove(event)\n fromEvent(document.body, 'mousemove')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((e: any) => {\n\n const mouseYCloseOn = Math.abs(this.mouseLocation.mouseY - e.pageY) <= this.mouseThreshold;\n const mouseXCloseOn = Math.abs(this.mouseLocation.mouseX - e.pageX) <= this.mouseThreshold;\n if (!(mouseYCloseOn && mouseXCloseOn)){\n this.close();\n\n }\n });\n }\n }\n\n @HostListener('mouseleave')\n public hideOnHoverOut() {\n if (this.openStrategy == 'hover') {\n this.close();\n }\n }\n\n @HostListener('click')\n public show() {\n if (!this.askDropdown || this.isRendered || this.dropdownDisabled ) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n if (this.dropdownOpenOnHover) {\n fromEvent(this.containerRef.location.nativeElement, 'mouseout')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event: any) => {\n if (event.relatedTarget?.classList.contains('cdk-overlay-backdrop')) {\n this.close();\n }\n });\n }\n this._isRendered = true;\n }\n public onMouseMove(event: any): {mouseX: number; mouseY: number} {\n const location = {\n mouseX: event.clientX,\n mouseY: event.pageY\n }\n\n return location;\n }\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n this.askDropdownOnClose.emit();\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","export function areObjectsEqual(\n obj1: Record<string, any>,\n obj2: Record<string, any>\n) {\n return Object.keys(obj1).every((key) => obj1[key] === obj2[key]);\n}\n","export const URL_REGEX = /(https?:\\/\\/|www\\.)[\\w-\\.]+\\.[\\w-\\.]+(\\/([\\S]+)?)?/gi\n","import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';\nimport Quill, { BoundsStatic, Delta, DeltaStatic, RangeStatic, SelectionChangeHandler, Sources, TextChangeHandler } from 'quill';\nimport { BehaviorSubject, Subject, Subscription, filter, fromEvent, map } from 'rxjs';\nimport {\n RichTextFunctions,\n RichtextFormats,\n Tool,\n ToolKeys,\n ToolsState,\n} from '../interfaces/richtext-toolbox.interface';\nimport { URL_REGEX } from '../constants/url-regex.constant';\n\nexport class RichtextWrapper implements RichTextFunctions {\n private quill!: Quill;\n\n private maxLengthSubscription?: Subscription;\n private templateReplacerSubscription?: Subscription;\n\n private stateSub = new BehaviorSubject<ToolsState>({\n hasSelection: false,\n hasFocus: false,\n formats: {\n italic: false,\n bold: false,\n underline: false,\n strike: false,\n link: '',\n list_bulleted: false,\n list_numbered: false,\n justify_left: false,\n justify_center: false,\n justify_right: false,\n },\n disabledTools: []\n });\n private esc$ = new Subject<boolean>();\n private enter$ = new Subject<boolean>();\n private maxLength = -1;\n private breakOnEnter = false;\n private allowImages = false;\n private quillFormats = [\n 'background',\n 'bold',\n 'color',\n 'font',\n 'code',\n 'italic',\n 'link',\n 'size',\n 'strike',\n 'script',\n 'underline',\n 'blockquote',\n 'header',\n 'indent',\n 'list',\n 'align',\n 'direction',\n 'code-block',\n 'formula',\n 'image',\n 'htmlPanel'\n // 'video'\n ]\n\n private textChangeHandler: TextChangeHandler = () => {\n this.update();\n };\n\n private selectionChangeHandler: SelectionChangeHandler = (\n value: RangeStatic,\n oldRange: RangeStatic,\n source: Sources\n ) => {\n this.update();\n };\n\n private bindings = {\n bold: {\n handler: () => {\n this.setBold();\n return false;\n },\n },\n italic: {\n handler: () => {\n this.setItalic();\n return false;\n },\n },\n underline: {\n handler: () => {\n this.setUnderline();\n return false;\n },\n },\n escape:{\n key: 'escape',\n handler: () => {\n this.esc$.next(true);\n return false;\n }\n },\n enter: {\n key: 'enter',\n handler: () => {\n this.enter$.next(true);\n return this.breakOnEnter;\n }\n }\n\n };\n\n public get state(){\n return this.stateSub.value\n }\n \n public state$ = this.stateSub.asObservable();\n \n public get listenTextChanges$(){\n return fromEvent(this.quill, 'text-change')\n .pipe(map(() => this.quill.root.innerHTML)); \n }\n\n public get listenOnTouched$() {\n return fromEvent(this.quill, 'selection-change').pipe(\n filter(() => Boolean(this.quill.getSelection(false))),\n map(() => null)\n );\n }\n\n public get listenEscape$(){\n return this.esc$.asObservable()\n }\n\n public get listenEnter$(){\n return this.enter$.asObservable();\n }\n\n constructor(\n private ngZone: NgZone,\n private cd: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n ) {\n const editorId = `editor-${new Date().getTime()}`;\n this.elementRef.nativeElement.setAttribute('id', editorId);\n this.quill = new QuillProxy.Quill(`#${editorId}`, {\n placeholder: '',\n modules: {\n clipboard: {\n matchers: [\n [Node.TEXT_NODE, this.urlMatcher.bind(this)],\n ['IMG', this.imageMatcher.bind(this)],\n [Node.ELEMENT_NODE, this.htmlPanelMatcher.bind(this)]\n ],\n },\n keyboard: { bindings: this.bindings },\n },\n formats: this.quillFormats\n });\n this.listenEditorChanges();\n }\n\n public setItalic() {\n if(this.isToolDisabled('italic')) return;\n this.quill.format('italic', !this.state.formats.italic);\n this.update();\n }\n\n public setBold() {\n if(this.isToolDisabled('bold')) return\n this.quill.format('bold', !this.state.formats.bold);\n this.update();\n }\n\n public setUnderline() {\n if(this.isToolDisabled('underline')) return;\n this.quill.format('underline', !this.state.formats.underline);\n this.update();\n }\n\n public setStrike() {\n if(this.isToolDisabled('strike')) return;\n this.quill.format('strike', !this.state.formats.strike);\n this.update();\n }\n\n public setListNumbered() {\n if(this.isToolDisabled('list_numbered')) return;\n if (this.state.formats.list_numbered)\n this.quill.format('list', null);\n else \n this.quill.format('list', 'ordered');\n this.update();\n }\n\n public setListBulleted() {\n if(this.isToolDisabled('list_bulleted')) return;\n if (this.state.formats.list_bulleted)\n this.quill.format('list', null);\n else \n this.quill.format('list', 'bulleted');\n this.update();\n }\n\n public setLink(link: string) {\n if(this.isToolDisabled('link')) return;\n\n const range = this.quill.getSelection(true);\n\n if (range && !range.length) {\n const [textBloat, offset] = this.quill.getLeaf(range!.index);\n\n const start = range!.index - offset;\n const length = textBloat.length();\n\n this.quill.formatText(start, length, 'link', link);\n } else {\n this.quill.format('link', link);\n }\n\n this.update();\n }\n\n public setJustifyLeft() {\n if(this.isToolDisabled('justify_left')) return;\n this.quill.format('align', null);\n this.update();\n }\n\n public setJustifyCenter() {\n if(this.isToolDisabled('justify_center')) return;\n this.quill.format('align', 'center');\n this.update();\n }\n\n public setJustifyRight() {\n if(this.isToolDisabled('justify_right')) return;\n this.quill.format('align', 'right');\n this.update();\n }\n\n public setRemove() {\n const selection = this.quill.getSelection();\n if (selection) this.quill.removeFormat(selection!.index, selection!.length);\n this.update();\n }\n\n public setPlaceholder(placeholder: string){\n this.quill.root.dataset['placeholder'] = placeholder;\n }\n\n public setText(text: string){\n this.quill.clipboard.dangerouslyPasteHTML(text, 'silent');\n }\n\n public getTextWithoutHtmlTags(){\n return this.quill.getText();\n }\n\n public insertText(index: number, text: string, emitEvent: boolean){\n const source = emitEvent ? 'user' : 'silent';\n this.quill.insertText(index, text, source)\n }\n\n public setShortcutTemplate(key: string, template: string) {\n this.templateReplacerSubscription?.unsubscribe();\n\n this.templateReplacerSubscription = fromEvent(\n this.quill,\n 'text-change'\n ).subscribe(([_delta, _oldDelta, _source]) => {\n const delta = _delta as unknown as DeltaStatic;\n const source = _source as Sources;\n\n delta.ops?.forEach((op) => {\n if (op.insert === key && source === 'user') {\n const position = delta.ops![0].retain || 0;\n delta.ops!.pop();\n delta.ops!.push({ delete: key.length }, { insert: template });\n\n this.quill.updateContents(delta, 'silent');\n\n setTimeout(() => {\n this.quill.setSelection(position + 1 + template.length, -1);\n });\n }\n });\n });\n }\n\n public setMaxLength(length: number){\n this.maxLength = length;\n\n this.maxLengthSubscription?.unsubscribe();\n if(this.maxLength > 0)\n this.maxLengthSubscription = \n fromEvent(this.quill, 'text-change')\n .pipe(filter(() => this.quill.getLength() > this.maxLength))\n .subscribe(() => {\n this.quill.deleteText(this.maxLength -1, this.quill.getLength());\n })\n }\n\n public setDisabledTools(tools: ToolKeys){\n if(JSON.stringify(tools) !== JSON.stringify(this.stateSub.value.disabledTools))\n this.stateSub.next({...this.stateSub.value, disabledTools: tools, })\n }\n\n public setEditorClass(className: string){\n if(!className) return;\n this.quill.root.classList.add(className);\n }\n\n public getEditorElement(){\n return this.quill.root;\n }\n\n public getTextLength(){\n return this.quill.getLength();\n }\n\n public disable(){\n this.quill.disable();\n }\n\n public enable(){\n this.quill.enable();\n }\n\n public focus(){\n this.quill.focus();\n }\n\n public setBreakOnEnter(breakOnEnter: boolean){\n this.breakOnEnter = breakOnEnter;\n }\n\n public setAllowImages(allowImages: boolean){\n this.allowImages = allowImages;\n }\n\n public getCurrentCursorPosition(){\n return this.quill.getSelection();\n }\n\n public destroy() {\n this.quill.off('selection-change', this.selectionChangeHandler);\n this.quill.off('text-change', this.textChangeHandler);\n this.esc$.unsubscribe();\n this.enter$.unsubscribe();\n this.stateSub.unsubscribe();\n this.maxLengthSubscription?.unsubscribe();\n this.templateReplacerSubscription?.unsubscribe();\n }\n\n private isToolDisabled(tool: Tool){\n return this.stateSub.value.disabledTools.includes(tool)\n }\n\n private urlMatcher(node: any, delta: any) {\n if (typeof node.data !== 'string') return;\n const matches = node.data.match(URL_REGEX);\n\n if (matches && matches.length > 0) {\n let text = '';\n const selection = this.quill.getSelection(true);\n if (selection.length)\n text = this.quill.getText(selection!.index, selection!.length);\n\n const ops = [];\n let str = node.data;\n matches.forEach(function (match: any) {\n const split = str.split(match);\n const beforeLink = split.shift();\n ops.push({ insert: beforeLink });\n ops.push({ insert: text || match, attributes: { link: match } });\n str = split.join(match);\n });\n ops.push({ insert: str });\n delta.ops = ops;\n }\n\n return delta;\n }\n\n private imageMatcher(node: any, delta: any){\n if(this.allowImages) return delta;\n\n const Delta = Quill.import('delta')\n return new Delta().insert('')\n }\n\n private htmlPanelMatcher(node: HTMLElement, delta: Delta) {\n if (node.id === 'htmlPanel') {\n delta.ops = [{ insert: {htmlPanel: node.innerHTML}}];\n }\n return delta;\n }\n\n\n private listenEditorChanges() {\n this.quill.on('selection-change', this.selectionChangeHandler);\n this.quill.on('text-change', this.textChangeHandler);\n }\n\n\n private update() {\n let bounds: BoundsStatic | undefined;\n let formatsArr;\n\n const range = this.quill.getSelection(false);\n if (range){ \n bounds = this.quill.getBounds(range.index, range.length);\n formatsArr = this.quill.getFormat(range) as any;\n }\n\n const formats: RichtextFormats = {\n italic: formatsArr?.italic || false,\n bold: formatsArr?.bold || false,\n underline: formatsArr?.underline || false,\n strike: formatsArr?.strike || false,\n link: formatsArr?.link || '',\n list_bulleted: formatsArr?.list === 'bullet',\n list_numbered: formatsArr?.list === 'ordered',\n justify_left: formatsArr?.align === 'left',\n justify_center: formatsArr?.align === 'center',\n justify_right: formatsArr?.align === 'right',\n };\n\n const hasSelection = !!range?.length;\n const hasFocus = !!range;\n\n const newState: ToolsState = { \n ...this.stateSub.value, \n hasSelection, \n formats, \n bounds, \n hasFocus \n };\n\n this.ngZone.run(() => {\n this.stateSub.next(newState);\n this.cd.markForCheck();\n })\n }\n}\n\n//to work around testing problems \nexport const QuillProxy ={\n Quill\n}\n\n//to work around testing problems \nexport const RichtextWrapperProxy = {\n RichtextWrapper\n}","import { RichTextFunctionsKeys, Tool, ToolKeys } from \"../interfaces/richtext-toolbox.interface\";\n\nexport const TOOL_FUNCTION_MAP: Record<Tool, RichTextFunctionsKeys> = {\n bold: 'setBold',\n italic: 'setItalic',\n underline: 'setUnderline',\n strike: 'setStrike',\n list_numbered: 'setListNumbered',\n list_bulleted: 'setListBulleted',\n link: 'setLink',\n justify_left: 'setJustifyLeft',\n justify_center: 'setJustifyCenter',\n justify_right: 'setJustifyRight',\n clear: 'setRemove',\n};\n\nexport const TOOL_ICON_MAP: Record<Tool, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underlined',\n strike: 'format_strikethrough',\n list_numbered: 'format_list_numbered',\n list_bulleted: 'format_list_bulleted',\n link: 'link',\n justify_left: 'format_align_left',\n justify_center: 'format_align_center',\n justify_right: 'format_align_right',\n clear: 'format_clear',\n};\n\nexport const ALL_TOOLS: ToolKeys = [\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'list_numbered',\n 'list_bulleted',\n 'link',\n 'justify_left',\n 'justify_center',\n 'justify_right',\n 'clear',\n]\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RichtextUrlPromptStateService {\n public urlText: string = '';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { URL_REGEX } from '../../constants/url-regex.constant';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RichtextUrlPromptStateService } from './richtext-url-prompt-state.service';\n\n@Component({\n selector: 'ask-richtext-url-prompt',\n templateUrl: './richtext-url-prompt.component.html',\n styleUrls: ['./richtext-url-prompt.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RichtextUrlPromptComponent {\n @ViewChild('input') inputEl?: ElementRef<HTMLInputElement>;\n\n isPreset = false;\n\n @Input({ alias: 'url' }) set _url(url: string) {\n if(document.activeElement === this.inputEl?.nativeElement) return;\n\n if(url) this.isPreset = true;\n\n url = url || this.state.urlText;\n this.formControl.setValue(url, {emitEvent: false});\n }\n @Output() url = new EventEmitter<string>();\n formControl = new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.pattern(URL_REGEX)],\n });\n\n get isValid() {\n if(this.isPreset) return true\n \n return this.formControl.valid && this.formControl.dirty\n }\n\n constructor(\n private destroyRef: DestroyRef,\n private state: RichtextUrlPromptStateService,\n ) {\n this.formControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n state.urlText = value;\n this.isPreset = false;\n });\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n if (!this.isValid) return;\n\n if(this.isPreset) this.formControl.setValue('', {emitEvent: false});\n\n this.state.urlText = '';\n this.url.emit(this.formControl.value);\n }\n\n ngAfterViewInit() {\n this.inputEl!.nativeElement.focus();\n }\n}\n","<input\n #input\n data-testid=\"input\"\n placeholder=\"https://asksuite.com\"\n class=\"input\"\n [formControl]=\"formControl\"\n (keydown.enter)=\"onSubmit($event)\"\n/>\n<button\n data-testid=\"button\"\n [disabled]=\"!isValid\"\n class=\"save\"\n type=\"button\"\n (click)=\"onSubmit($event)\"\n>\n {{ (isPreset ? \"CLEAR\" : \"SAVE\") | translate }}\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {\n ToolbarItem,\n} from '../../interfaces/richtext-toolbox.interface';\nimport { AskDropdownDirective } from '../../directives';\n\n@Component({\n selector: 'ask-richtext-toolbox',\n templateUrl: './richtext-toolbox.component.html',\n styleUrls: ['./richtext-toolbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RichtextToolboxComponent {\n @ViewChildren(AskDropdownDirective)\n dropdowns?: QueryList<AskDropdownDirective>;\n\n \n @Output() close = new EventEmitter<void>();\n @Output() tool = new EventEmitter<ToolbarItem>();\n\n get toolbarItems(){\n return this._toolbarItems;\n }\n @Input() set toolbarItems(value: ToolbarItem[]) {\n this._toolbarItems = value;\n this.urlIdx = value.findIndex((item) => item.tool === 'link');\n }\n @Input() type: 'topbar' | 'bubble' = 'topbar';\n @Input() @HostBinding('class') class: 'top-toolbox' | 'bubble-toolbox' | string = '';\n \n private _toolbarItems: ToolbarItem[] = [];\n private urlIdx: number = -1;\n protected isUrlMode = false;\n\n\n protected get linkTool(): ToolbarItem | undefined {\n return this.toolbarItems[this.urlIdx];\n }\n\n private get urlDropdownRef() {\n return this.dropdowns?.get(this.urlIdx);\n }\n\n ngOnChanges(sp: SimpleChanges) {\n if(sp['type'] && !this.class){\n this.class = this.type === 'bubble' ? 'bubble-toolbox' : 'top-toolbox';\n }\n }\n\n onTool(toolbarItem: ToolbarItem) {\n if (toolbarItem.disabled) return;\n\n if (toolbarItem.tool === 'link'){\n if(this.type === 'bubble')\n this.isUrlMode = true; \n }else{\n this.tool.emit(toolbarItem);\n }\n }\n\n onUrl(link: string) {\n this.tool.emit({ ...this.linkTool!, value: link });\n this.closeUrlInput()\n }\n\n trackByToolFn(index: number, item: ToolbarItem) {\n return item.tool;\n }\n\n protected closeUrlInput(){\n if(this.isUrlMode)\n this.isUrlMode = false;\n else\n this.urlDropdownRef!.close();\n }\n}\n","<ng-container *ngIf=\"!isUrlMode; else urlTemplate\">\n <button\n class=\"button\"\n *ngFor=\"let tool of toolbarItems; trackBy: trackByToolFn\"\n [disabled]=\"tool.disabled\"\n (click)=\"onTool(tool)\"\n [askDropdown]=\"\n tool.tool === 'link' && type === 'topbar' ? urlTemplate : undefined\n \"\n positions=\"BOTTOM_LEFT\"\n [attr.data-testid]=\"'button-' + tool.tool\"\n type=\"button\"\n >\n <span\n class=\"material-icons icon\"\n [ngClass]=\"{\n '-selected': tool.selected,\n '-disabled': tool.disabled,\n '-bubble': type === 'bubble',\n }\"\n >\n {{ tool.icon }}\n </span>\n </button>\n</ng-container>\n\n<ng-template #urlTemplate>\n <ask-richtext-url-prompt\n data-testid=\"url-prompt\"\n [url]=\"linkTool?.value || ''\"\n (url)=\"onUrl($event)\"\n (keydown.escape)=\"closeUrlInput()\"\n />\n</ng-template>\n","import {\n ChangeDetectorRef,\n ComponentRef,\n ElementRef,\n Injector,\n NgZone,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { RichtextWrapper, RichtextWrapperProxy } from './richtext-wrapper';\nimport { ALL_TOOLS, TOOL_FUNCTION_MAP, TOOL_ICON_MAP } from '../constants/richtext-toolbox.constants';\nimport { Tool, ToolKeys, ToolbarItem, ToolboxInput, ToolsState } from '../interfaces/richtext-toolbox.interface';\nimport { RichtextToolboxComponent } from '../components/richtext-toolbox/richtext-toolbox.component';\nimport { Subscription, delay } from 'rxjs';\n\nexport abstract class Toolbox {\n public readonly richtextWrapper: RichtextWrapper;\n\n protected hostEl: ElementRef<HTMLElement>;\n protected viewContainerRef: ViewContainerRef;\n protected renderer2: Renderer2;\n protected ngZone: NgZone;\n protected cd: ChangeDetectorRef;\n\n protected componentRef?: ComponentRef<RichtextToolboxComponent>;\n\n protected get component(){\n return this.componentRef?.instance;\n }\n\n protected get componentEl(): HTMLElement | undefined{\n return this.componentRef?.location.nativeElement;\n }\n\n private parentEl?: HTMLElement\n private toolboxInput?: ToolboxInput\n private _subscription?: Subscription;\n\n constructor(injector: Injector) {\n this.hostEl = injector.get(ElementRef<HTMLElement>);\n this.viewContainerRef = injector.get(ViewContainerRef);\n this.renderer2 = injector.get(Renderer2);\n this.ngZone = injector.get(NgZone);\n this.cd = injector.get(ChangeDetectorRef);\n\n this.parentEl = this.renderer2.parentNode(this.hostEl!.nativeElement);\n this.richtextWrapper = new RichtextWrapperProxy.RichtextWrapper(this.ngZone,this.cd,this.hostEl);\n this.listenRichtextState();\n }\n\n public destroyAll() {\n this._subscription?.unsubscribe();\n this.richtextWrapper.destroy();\n this.destroyComponent();\n }\n\n public toggleInputDisplay(display: boolean) {\n if(display){\n if(!this.isInputVisible())\n this.renderer2.appendChild(this.parentEl, this.hostEl?.nativeElement);\n }else {\n if(this.isInputVisible())\n this.renderer2.removeChild(this.parentEl, this.hostEl?.nativeElement);\n }\n };\n\n public setToolInput(toolInput: ToolboxInput){\n this.toolboxInput = toolInput;\n if(this.component){\n this.richtextWrapper.setDisabledTools(\n this.getDisabledTools(\n this.toolboxInput!.availableTools,\n this.toolboxInput!.disabledTools\n )\n );\n this.componentRef?.setInput('class', toolInput.class);\n }\n }\n\n private isInputVisible(){\n return this.parentEl?.contains(this.hostEl?.nativeElement)\n }\n\n private getDisabledTools(availableTools: ToolKeys, disabledTools: ToolKeys){\n const unavailableTools = ALL_TOOLS.filter(tool => !availableTools.includes(tool));\n return [...new Set([...unavailableTools, ...disabledTools])];\n }\n\n private listenRichtextState() {\n this._subscription = this.richtextWrapper.state$\n .pipe(delay(1))\n .subscribe((value) => {this.onToolsChanged(value)});\n }\n\n private getDefaultTools(): ToolbarItem[]{\n return [...(this.toolboxInput?.availableTools || []), 'clear' as Tool]\n .map((tool: Tool) => {\n return {\n tool,\n icon: TOOL_ICON_MAP[tool],\n toolFunctionName: TOOL_FUNCTION_MAP[tool],\n selected: false,\n disabled: true,\n };\n })\n }\n\n protected onToolsChanged(toolsState: ToolsState){\n if(!this.componentRef) return;\n this.componentRef.setInput('toolbarItems', this.prepareUpdatedTools(toolsState));\n }\n\n protected isVisible() {\n return this.hostEl.nativeElement.contains(this.componentEl!);\n }\n\n protected destroyComponent() {\n this.componentRef?.destroy();\n }\n\n protected displayComponent(): void {\n this.componentRef = this.viewContainerRef.createComponent(RichtextToolboxComponent);\n this.componentRef.setInput('toolbarItems', this.prepareUpdatedTools(this.richtextWrapper.state));\n this.componentRef.setInput('class', this.toolboxInput?.class);\n this.component!.tool.subscribe((tool: ToolbarItem) => {\n this.richtextWrapper[tool.toolFunctionName](tool?.value as any)\n })\n }\n\n protected prepareUpdatedTools(toolState: ToolsState): ToolbarItem[]{\n let tools = this.getDefaultTools()\n const {formats, disabledTools} = toolState;\n\n return tools.map((tool) => {\n if(tool.tool === 'clear'){\n tool.disabled = false;\n } else {\n tool.selected = !!formats[tool.tool];\n tool.disabled = disabledTools.includes(tool.tool);\n if(tool.tool === 'link')\n tool.value = formats[tool.tool];\n }\n\n return tool;\n });\n }\n}","import { Injector } from \"@angular/core\";\nimport { BoundsStatic } from \"quill\";\nimport { Toolbox } from \"./toolbox\";\nimport { ToolsState } from \"../interfaces/richtext-toolbox.interface\";\n\nconst TOOLBOX_HEIGHT = 40;\nconst MARGIN = 8;\nconst MOUSE_EVENT = 'mouseup'\n\nclass BubbleToolbox extends Toolbox {\n private clickListener?: (event: MouseEvent) => void;\n \n constructor(injector: Injector) {\n super(injector);\n }\n \n private move(bounds: BoundsStatic) {\n this.renderer2.setStyle(this.componentEl,'top',`${bounds.top - (TOOLBOX_HEIGHT + MARGIN)}px`);\n this.renderer2.setStyle(this.componentEl,'left',`${bounds.left}px`);\n }\n \n private listenOutsideClicks(){\n this.clickListener = (event) => {\n if(\n !this.componentEl?.contains(event.target as Node) \n && this.isVisible()\n ){\n this.destroyComponent();\n }\n }\n document.body.addEventListener(MOUSE_EVENT, this.clickListener);\n }\n \n override onToolsChanged(state: ToolsState): void {\n super.onToolsChanged(state)\n const { hasSelection, hasFocus, bounds } = state;\n if (hasSelection && bounds) {\n if(!this.isVisible())\n this.displayComponent();\n this.move(bounds);\n } else {\n if(this.isVisible() && hasFocus)\n this.destroyComponent();\n }\n }\n \n override displayComponent() {\n super.displayComponent();\n this.listenOutsideClicks();\n this.renderer2.appendChild(this.hostEl?.nativeElement,this.componentEl);\n this.componentRef!.setInput('type','bubble');\n }\n\n override destroyComponent() {\n document.body.removeEventListener(MOUSE_EVENT, this.clickListener!);\n super.destroyComponent();\n }\n }\n\n\nexport const BubbleToolboxProxy = {\n BubbleToolbox\n}","import { Injector } from \"@angular/core\";\nimport { Toolbox } from \"./toolbox\";\nimport { ToolbarItem, ToolsState } from \"../interfaces/richtext-toolbox.interface\";\n\nclass TopbarToolbox extends Toolbox {\n\n constructor(injector: Injector) {\n super(injector);\n this.displayComponent();\n }\n \n \n override displayComponent(): void {\n super.displayComponent();\n const parentElement = this.renderer2.parentNode(this.hostEl?.nativeElement);\n this.renderer2.appendChild(parentElement,this.componentEl);\n this.renderer2.appendChild(parentElement, this.hostEl?.nativeElement);\n this.componentRef!.setInput('type','topbar');\n }\n\n override prepareUpdatedTools(toolState: ToolsState): ToolbarItem[]{\n const toolbarItems = super.prepareUpdatedTools(toolState);\n const { formats, hasSelection, hasFocus } = toolState;\n\n toolbarItems.forEach(tool => {\n if(!hasFocus) {\n tool.disabled = true\n return;\n }\n\n if (tool.tool === 'clear') {\n tool.disabled = !hasSelection;\n } else if (tool.tool === 'link') {\n tool.selected = !!formats.link;\n tool.disabled = !hasSelection && !formats.link;\n tool.value = formats?.link;\n }\n })\n return toolbarItems\n }\n }\n \n\n export const TopbarToolboxProxy = {\n TopbarToolbox\n }","import {\n Directive,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport {\n ToolKeys,\n ToolLayout,\n ToolsState,\n} from '../../interfaces/richtext-toolbox.interface';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription, distinctUntilChanged, filter } from 'rxjs';\nimport { areObjectsEqual } from '../../helpers/are-objects-equal.helper';\nimport { Toolbox } from '../../classes/toolbox';\nimport { BubbleToolboxProxy } from '../../classes/bubble-toolbox';\nimport { TopbarToolboxProxy } from '../../classes/topbar-toolbox';\n\nexport type ShortcutTemplate = {\n key: string;\n template: string;\n}\n\n@Directive({\n selector: '[askRichtextToolbox]',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichtextToolboxDirective),\n },\n ],\n})\nexport class RichtextToolboxDirective\n implements OnChanges, ControlValueAccessor\n{\n private toolbox?: Toolbox;\n\n private onChange!: (value: string) => void;\n private onTouched!: () => void;\n private subscription?: Subscription;\n\n @Input() rtPlaceholder = '';\n @Input() rtTools: ToolKeys = [];\n @Input() rtDisabledTools: ToolKeys = [];\n @Input() rtType: ToolLayout = 'topbar';\n @Input() rtToolbarOnly = false;\n @Input() rtMaxlength: number = -1;\n @Input() rtToolbarClass = '';\n @Input() rtEditorClass = '';\n @Input() rtBreakOnEnter = false;\n @Input() rtAllowImages = false;\n @Input() rtShortcutTemplate?: ShortcutTemplate;\n\n @Output() inputChange = new EventEmitter<string>();\n @Output() inputEnter = new EventEmitter();\n @Output() inputEscape = new EventEmitter();\n @Output() inputFocus = new EventEmitter();\n @Output() toolChange = new EventEmitter<ToolsState>();\n\n constructor(private injector: Injector) {}\n\n ngOnChanges(sp: SimpleChanges) {\n if (sp['rtType']) {\n this.prepareToolbar();\n }\n\n if (sp['rtPlaceholder']) {\n this.toolbox?.richtextWrapper.setPlaceholder(this.rtPlaceholder);\n }\n if (sp['rtToolbarOnly']) {\n this.toolbox?.toggleInputDisplay(!this.rtToolbarOnly)\n }\n\n if(sp['rtMaxlength']){\n this.toolbox?.richtextWrapper.setMaxLength(this.rtMaxlength);\n }\n\n if(sp['rtAllowImages']){\n this.toolbox?.richtextWrapper.setAllowImages(this.rtAllowImages);\n }\n\n if (sp['rtDisabledTools'] || sp['rtTools'] || sp['rtToolbarClass']) {\n this.toolbox?.setToolInput({\n availableTools: this.rtTools,\n disabledTools: this.rtDisabledTools,\n class: this.rtToolbarClass,\n })\n }\n\n if(sp['rtEditorClass']){\n this.toolbox?.richtextWrapper.setEditorClass(this.rtEditorClass);\n }\n\n if(sp['rtBreakOnEnter']){\n this.toolbox?.richtextWrapper.setBreakOnEnter(this.rtBreakOnEnter);\n }\n\n if(sp['rtShortcutTemplate'] && this.rtShortcutTemplate){\n this.toolbox?.richtextWrapper.setShortcutTemplate(\n this.rtShortcutTemplate!.key,\n this.rtShortcutTemplate!.template\n );\n }\n }\n\n ngOnDestroy() {\n this.destroyAll();\n }\n\n focus() {\n this.toolbox?.richtextWrapper.focus();\n }\n\n getTextLength(){\n return this.toolbox?.richtextWrapper.getTextLength();\n }\n\n //CVA\n\n writeValue(text: string): void {\n this.toolbox?.richtextWrapper.setText(text);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) this.toolbox?.richtextWrapper.disable();\n else this.toolbox?.richtextWrapper.enable();\n }\n\n getCurrentCursorPosition(){\n return this.toolbox?.richtextWrapper.getCurrentCursorPosition();\n }\n\n public getTextWithoutHtmlTags(): string {\n return this.toolbox?.richtextWrapper.getTextWithoutHtmlTags() || '';\n }\n\n public insertText(index: number, text: string, emitEvent = true){\n this.toolbox?.richtextWrapper.insertText(index, text, emitEvent);\n }\n\n private prepareToolbar(){\n if (this.toolbox) this.destroyAll();\n\n this.toolbox = this.generateToolboxLayout(this.rtType);\n this.prepareListeners(this.toolbox);\n }\n\n private prepareListeners(toolbox: Toolbox) {\n if(this.subscription) this.subscription.unsubscribe();\n this.subscription = new Subscription();\n this.subscription.add(toolbox.richtextWrapper.listenTextChanges$\n .subscribe((v)=>{this.update(v)}));\n this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe((touched)=>{\n this.onTouched()\n this.inputFocus.emit(touched);\n }));\n this.subscription.add(toolbox.richtextWrapper.listenEnter$.subscribe(()=>{this.inputEnter.emit()}));\n this.subscription.add(toolbox.richtextWrapper.listenEscape$.subscribe(()=>{this.inputEscape.emit()}));\n this.subscription.add(toolbox.richtextWrapper.state$\n .pipe(distinctUntilChanged((a, b) => areObjectsEqual(a, b)))\n .subscribe((state)=>{this.toolChange.emit(state)}))\n }\n\n private update(value: string){\n this.inputChange.emit(value);\n this.onChange(value);\n }\n\n private destroyAll() {\n this.toolbox?.destroyAll();\n this.subscription?.unsubscribe();\n }\n\n private generateToolboxLayout(type: ToolLayout) {\n const toolbox = this.getToolbox(type);\n toolbox.richtextWrapper.setPlaceholder(this.rtPlaceholder);\n toolbox.setToolInput({\n availableTools: this.rtTools,\n disabledTools: this.rtDisabledTools,\n class: this.rtToolbarClass,\n })\n toolbox.toggleInputDisplay(!this.rtToolbarOnly)\n toolbox.richtextWrapper.setMaxLength(this.rtMaxlength);\n toolbox.richtextWrapper.setAllowImages(this.rtAllowImages);\n toolbox.richtextWrapper.setEditorClass(this.rtEditorClass);\n return toolbox;\n }\n\n private getToolbox(type: ToolLayout){\n switch(type){\n case 'bubble':\n return new BubbleToolboxProxy.BubbleToolbox(this.injector);\n case 'topbar':\n return new TopbarToolboxProxy.TopbarToolbox(this.injector);\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'input[askInput]'\n})\nexport class InputDirective {\n @HostBinding('class.default-input') defaultButton = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[askListItem]',\n})\nexport class ListItemDirective {\n @HostBinding('class.list-item') listItem = true;\n}\n","import {Component, Input} from '@angular/core';\n\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n@Component({\n selector: 'ask-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent<T extends ComponentType<T>> {\n @Input() content!: T;\n @Input() fullscreen = false;\n @Input() scroll = false;\n}\n","<div\n data-testid=\"ask-modal\"\n class=\"ask-modal\"\n [class.-fullscreen]=\"fullscreen\"\n [class.-scroll]=\"scroll\"\n>\n <div class=\"body\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </div>\n</div>\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalBody]'\n})\nexport class ModalBodyDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-body')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalFooter]'\n})\nexport class ModalFooterDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-footer')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalHeader]'\n})\nexport class ModalHeaderDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-header')\n }\n\n}\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-character-counter',\n templateUrl: './character-counter.component.html',\n styleUrls: ['./character-counter.component.scss']\n})\nexport class CharacterCounterComponent {\n protected _count: number = 0;\n\n @Input() public threshold = 100;\n\n @Input() public set count(num: number) {\n this._count = num;\n this.show = num <= this.threshold;\n this.limitReached = num <= 0;\n }\n\n @HostBinding('class.-show') show = false;\n @HostBinding('class.-limit') limitReached = false;\n}\n","{{ _count }}\n","import {ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-extendable-panel',\n templateUrl: './extendable-panel.component.html',\n styleUrls: ['./extendable-panel.component.scss']\n})\nexport class ExtendablePanelComponent {\n @Input()\n isOpen = false\n \n id?: number\n\n @HostBinding('class.-highlight')\n @Input()\n highlight = false\n\n @Input()\n arrowPosition: 'left' | 'right' = 'right';\n\n @Input()\n headerTemplate: TemplateRef<any> | null = null;\n\n @Input()\n panelClass = ''\n\n @Input()\n contentGray = true\n\n @Input()\n isReply = false\n\n @Output() closed = new EventEmitter<void>()\n @Output() opened = new EventEmitter<void>()\n\n constructor(private changeRef: ChangeDetectorRef) {\n }\n\n public open() {\n this.isOpen = true\n this.opened.emit()\n this.changeRef.detectChanges()\n }\n\n public close() {\n this.isOpen = false\n this.closed.emit()\n this.changeRef.detectChanges()\n }\n\n}\n","<div [ngClass]=\"{ 'panel-container': !panelClass, 'panel-closed': !isOpen, 'content-open': !contentGray}\" [class]=\"panelClass\">\n <div (click)=\"isOpen ? close() : open()\" class=\"header\" data-testid=\"extendable-panel-header\" >\n <ng-container *ngIf=\"arrowPosition === 'left'\">\n <span [ngClass]=\"{'display-arrow': isReply}\" class=\"header-action material-icons\">{{isOpen ? 'expand_less' : 'expand_more'}}</span>\n </ng-container>\n\n <ng-container *ngIf=\"!headerTemplate; else headerTemplate\">\n <div class=\"header-title\">\n <ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"header-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"arrowPosition === 'right'\">\n <span class=\"header-action material-icons\">{{isOpen ? 'expand_less' : 'expand_more'}}</span>\n </ng-container>\n\n </div>\n <div [hidden]=\"!isOpen\" class=\"panel-block\" [ngClass]=\"{'-non-gray': !contentGray, 'fade-in-bck': isOpen}\">\n <ng-container>\n <ng-content select=\"[content]\"></ng-content>\n </ng-container>\n <ng-container>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-container>\n </div>\n</div>","import {Component, ContentChildren, Input} from '@angular/core';\nimport {ExtendablePanelComponent} from \"./extendable-panel/extendable-panel.component\";\nimport {Subscription} from \"rxjs\";\n\n@Component({\n selector: 'ask-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionComponent {\n private subscriptions: Subscription[] = []\n\n @Input()\n multiple = false\n\n @ContentChildren(ExtendablePanelComponent) set panels(elements: ExtendablePanelComponent[]) {\n if (this.subscriptions.length) {\n this.subscriptions.forEach(sub => sub.unsubscribe())\n this.subscriptions = []\n }\n if (!elements || this.multiple) return;\n\n elements.forEach((element, index) => {\n element.id = index\n this.subscriptions.push(element.opened.subscribe(() => {\n elements.forEach(el => {\n if (el.id !== element.id) el.close()\n })\n }))\n })\n }\n\n}\n","<ng-content select=\"ask-extendable-panel\"></ng-content>\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\n\ntype PageItem = {\n page: string;\n onClick: Function;\n isSelected: boolean;\n isGroupChange: boolean;\n}\n\nexport type PageChangeEvent = {\n page: number;\n pageSize: number;\n}\n\n@Component({\n selector: 'ask-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss']\n})\nexport class PaginationComponent implements OnInit, OnChanges {\n\n @Input({ required: true }) maxPages: number = 1;\n @Input() selectedPage = 1;\n @Input() maxPageItemsOnDisplay: number = 5;\n @Input() resultsPerPage: number = 10;\n @Input() resultsPerPageOptions: Array<number> = [10, 20, 30, 50, 100];\n\n @Output() pageChange: EventEmitter<PageChangeEvent> = new EventEmitter<PageChangeEvent>();\n\n protected pagesDisplay: Array<PageItem> = [];\n protected currentPageGroup = 0;\n protected disablePrevious = true;\n protected disableNext = false;\n\n ngOnInit() {\n this.currentPageGroup = this.getGroupByPage(this.selectedPage);\n this.buildDisplay(this.currentPageGroup);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['maxPages'] && this.pagesDisplay.length) {\n this.buildDisplay(0);\n this.changePage(1);\n }\n }\n\n public changePage(page: number) {\n const pageAsString = page.toString();\n\n this.selectedPage = page;\n\n this.pagesDisplay.forEach(page => {\n page.isSelected = page.page === pageAsString;\n });\n\n const selectedPageGroup = this.getGroupByPage(this.selectedPage);\n if (selectedPageGroup !== this.currentPageGroup) {\n this.buildDisplay(selectedPageGroup);\n }\n else {\n this.checkArrowsState();\n }\n\n this.emitChange();\n }\n\n private buildDisplay(pageGroup: number) {\n this.currentPageGroup = pageGroup;\n\n const newDisplay: Array<PageItem> = [];\n\n this.buildCurrentPageGroup(newDisplay, pageGroup);\n this.addPreviousPageGroupIfNeeded(newDisplay);\n this.addNextPageGroupIfNeeded(newDisplay);\n this.checkArrowsState();\n\n this.pagesDisplay = newDisplay;\n }\n\n private buildCurrentPageGroup(newDisplay: Array<PageItem>, pageGroup: number) {\n const initialPage = pageGroup * this.maxPageItemsOnDisplay + 1;\n\n for (let i = initialPage; i < initialPage + this.maxPageItemsOnDisplay && i <= this.maxPages; i++) {\n newDisplay.push(this.getPageItem(i.toString()));\n }\n }\n\n private addPreviousPageGroupIfNeeded(newDisplay: Array<PageItem>) {\n if (Number(newDisplay[0].page) > 1) {\n newDisplay.unshift(\n this.getPageItem('1'),\n this.getPageItem('...', this.incrementPageGroup.bind(this, -1))\n );\n }\n }\n\n private addNextPageGroupIfNeeded(newDisplay: Array<PageItem>) {\n if (Number(newDisplay[newDisplay.length - 1].page) < this.maxPages) {\n newDisplay.push(\n this.getPageItem('...', this.incrementPageGroup.bind(this, 1)),\n this.getPageItem(this.maxPages.toString())\n );\n }\n }\n\n private getPageItem(page: string, clickFn?: Function): PageItem {\n return {\n page: page,\n isSelected: Number(page) === this.selectedPage,\n isGroupChange: page === '...',\n onClick: clickFn || this.changePage.bind(this, Number(page)),\n }\n }\n\n private incrementPageGroup(num: number) {\n this.buildDisplay(this.currentPageGroup + num);\n }\n\n private getGroupByPage(page: number) {\n return Math.ceil(page / this.maxPageItemsOnDisplay) - 1;\n }\n\n private checkArrowsState() {\n this.disablePrevious = this.selectedPage === 1;\n this.disableNext = this.selectedPage === this.maxPages;\n }\n\n protected handleResultsPerPageChange(value: string) {\n this.resultsPerPage = Number(value);\n this.changePage(1);\n }\n\n protected emitChange() {\n this.pageChange.emit({\n page: this.selectedPage,\n pageSize: this.resultsPerPage\n })\n }\n}\n","<div class=\"page-size\">\n <p class=\"label\">{{ 'RESULTS_PER_PAGE' | translate }}</p>\n\n <select\n class=\"size\"\n name=\"resultsPerPage\"\n id=\"resultsPerPage\"\n data-testid=\"results-per-page-select\"\n [ngModel]=\"resultsPerPage\"\n (ngModelChange)=\"handleResultsPerPageChange($event)\"\n >\n <option *ngFor=\"let value of resultsPerPageOptions\" [value]=\"value\">{{ value }}</option>\n </select>\n</div>\n\n<div class=\"page-selector\">\n <button\n type=\"button\"\n class=\"previous\"\n data-testid=\"previous-button\"\n [disabled]=\"disablePrevious\"\n (click)=\"changePage(selectedPage - 1)\"\n >\n <span class=\"material-icons\">\n chevron_left\n </span>\n </button>\n\n <div class=\"page-list\" data-testid=\"page-list\">\n <button\n *ngFor=\"let page of pagesDisplay\"\n type=\"button\"\n class=\"page\"\n [ngClass]=\"{\n '-selected': page.isSelected,\n '-more': page.isGroupChange,\n }\"\n (click)=\"page.onClick()\"\n >\n {{ page.page }}\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"next\"\n data-testid=\"next-button\"\n [disabled]=\"disableNext\"\n (click)=\"changePage(selectedPage + 1)\"\n >\n <span class=\"material-icons\">\n chevron_right\n </span>\n </button>\n</div>\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output} from '@angular/core';\nimport * as _ from 'lodash';\nimport {PageChangeEvent} from \"../pagination/pagination.component\";\n\nexport type ColumnConfig = {\n title: string;\n sortable: boolean;\n propName: string;\n justify: 'left' | 'right' | 'center';\n sort?: 'asc' | 'desc';\n width?: string;\n export?:{\n hidden?: boolean;\n type?: 'PERCENTAGE' | 'DATE'| 'STRING' | 'NUMBER' | 'I18N';\n }\n icon?: ColumnConfigIcon;\n}\n\nexport type ColumnConfigIcon = {\n name: string;\n message?: string;\n};\n\nexport type PaginationConfig = {\n itemsPerPage: number;\n itemsPerPageOptions?: Array<number>;\n maxPageItemsOnDisplay?: number;\n totalItems: number;\n currentPage: number;\n totalPages: number;\n}\n\nexport type TableConfig = {\n columnConfig: ColumnConfig[];\n paginationConfig?: PaginationConfig;\n hasTotalizer?: boolean;\n maxHeight?: number;\n hoverLine?: boolean;\n}\n\n@Component({\n selector: 'ask-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent{\n\n private _tableConfig: TableConfig = {\n columnConfig: []\n };\n\n protected readonly ITEMS_PER_PAGE_OPTIONS_DEFAULT = [10, 20, 30, 50, 100];\n protected readonly MAX_PAGE_ITEMS_ON_DISPLAY = 5;\n\n @Input() set tableConfig(config: TableConfig){\n this._tableConfig = {\n ...config,\n hoverLine: config.hoverLine ?? true\n }\n\n this.maxHeight = config.maxHeight;\n };\n\n @Input() data: any[] = [];\n\n @Output() sort = new EventEmitter();\n @Output() pageChange = new EventEmitter<PageChangeEvent>();\n\n\n @Input() maxHeight?: number = undefined;\n\n onPageChange(event: PageChangeEvent){\n this.pageChange.emit(event);\n }\n\n get tableConfig(): TableConfig{\n return this._tableConfig;\n };\n\n onSort(column: ColumnConfig){\n if(!column.sortable){\n return;\n }\n column.sort = column.sort === 'asc' ? 'desc' : 'asc';\n _.forEach(this.tableConfig.columnConfig, cconfig => {\n if(cconfig.propName !== column.propName){\n cconfig.sort = undefined;\n }\n });\n this.sort.emit(column);\n }\n\n}\n","<div class=\"table-scroll\" [style.max-height.px]=\"maxHeight\">\n <table class=\"table-container\">\n <thead class=\"table-header\">\n <tr class=\"header-row\">\n <th class=\"table-th\" [class.-sortable]=\"column.sortable\"\n *ngFor=\"let column of tableConfig.columnConfig\"\n (click)=\"onSort(column)\"\n [style.width]=\"column.width\">\n <div class=\"-{{column.justify}}\">\n <span\n *ngIf=\"column.icon\"\n class=\"material-icons header-icon notranslate\"\n askTooltip\n [askTooltipMessage]=\"(column.icon.message || '') | translate\"\n [askTooltipPosition]=\"'above'\"\n >\n {{ column.icon.name }}\n </span>\n\n <span>{{ column.title | translate }}</span>\n\n <span *ngIf=\"column.sortable\" class=\"material-icons sort-icon\" [class.active]=\"!!column.sort\">\n <ng-container [ngSwitch]=\"column.sort\">\n <ng-container *ngSwitchCase=\"'asc'\">south</ng-container>\n <ng-container *ngSwitchCase=\"'desc'\">north</ng-container>\n <ng-container *ngSwitchDefault>south</ng-container>\n </ng-container>\n </span>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody [class.-hover]=\"tableConfig.hoverLine\">\n <ng-content select=\"[ask-table-body]\"></ng-content>\n </tbody>\n\n <tfoot class=\"table-footer\" *ngIf=\"tableConfig.hasTotalizer\">\n <ng-container >\n <ng-content select=\"[ask-table-totalizer]\"></ng-content>\n </ng-container>\n </tfoot>\n </table>\n</div>\n\n<div\n *ngIf=\"(tableConfig.paginationConfig?.totalPages || 0) >= 1\"\n class=\"pagination-wrapper\"\n>\n <ask-pagination\n class=\"pagination\"\n [maxPages]=\"tableConfig.paginationConfig?.totalPages || 0\"\n [resultsPerPage]=\"tableConfig.paginationConfig?.itemsPerPage || ITEMS_PER_PAGE_OPTIONS_DEFAULT[0]\"\n [resultsPerPageOptions]=\"tableConfig.paginationConfig?.itemsPerPageOptions || ITEMS_PER_PAGE_OPTIONS_DEFAULT\"\n [maxPageItemsOnDisplay]=\"tableConfig.paginationConfig?.maxPageItemsOnDisplay || MAX_PAGE_ITEMS_ON_DISPLAY\"\n [selectedPage]=\"tableConfig.paginationConfig?.currentPage || 1\"\n (pageChange)=\"onPageChange($event)\"\n ></ask-pagination>\n</div>\n","import {PageChangeEvent} from \"../../components/pagination/pagination.component\";\nimport {TableConfig} from \"../../components/table/table.component\";\n\nexport function updatePaginationConfig<T>(event: PageChangeEvent, data: Array<T>, config: TableConfig) {\n const { page, pageSize } = event;\n const totalItems = data.length || 0;\n const totalPages = Math.ceil(totalItems / pageSize);\n\n config.paginationConfig = {\n itemsPerPage: pageSize,\n currentPage: page,\n totalItems,\n totalPages,\n };\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {PaginationConfig, TableConfig} from \"../../components/table/table.component\";\nimport {PageChangeEvent} from \"../../components/pagination/pagination.component\";\nimport {updatePaginationConfig} from \"./paginate.helper\";\n\n@Pipe({\n name: 'paginate',\n pure: false,\n})\nexport class PaginatePipe implements PipeTransform {\n\n transform<T>(data: Array<T>, config: TableConfig, initialPageEvent?: PageChangeEvent): Array<T> {\n if (!config.paginationConfig) {\n updatePaginationConfig(initialPageEvent || {page: 1, pageSize: 10}, data, config);\n }\n\n return this.getPaginatedSlice(data, config.paginationConfig!);\n }\n\n getPaginatedSlice(data: Array<any>, paginationConfig: PaginationConfig) {\n const { currentPage, itemsPerPage } = paginationConfig;\n\n return data.slice(itemsPerPage * (currentPage - 1), itemsPerPage * currentPage);\n }\n\n}\n","export function removeDiacritics(str: string) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f\\W]/g, \"\");\n}\n\n\nexport function filterSelectedList<T extends GenericObject>(list: T[], value: string, propertyNames: Array<(keyof T)>) {\n if (!value) {\n return [...list];\n }\n\n return searchArray(list, propertyNames, value)\n}\n\ntype GenericObject = { [key: string]: any }\n\nexport function searchArray<T extends GenericObject>(array: T[], keys: Array<(keyof T)>, searchValue: string) {\n const searchValueNormalized = removeDiacritics(searchValue.toLowerCase());\n\n const regex = new RegExp(searchValueNormalized, \"i\");\n\n return array.filter(item => {\n return keys.some(key => {\n const attributeValueNormalized = removeDiacritics(item[key].toLowerCase());\n return regex.test(attributeValueNormalized);\n });\n });\n}\n","import {InjectionToken} from \"@angular/core\";\n\nexport type CountryDdi = {\n countryName: string;\n code: string\n countryCode: string;\n backgroundPosition: string;\n mask: string;\n dash_mask: string;\n}\n\nexport type CountryData = Omit<CountryDdi, 'dash_mask'> & {\n dashMask: string\n}\n\nexport const FLAG_PROVIDER_URL = new InjectionToken<string>('Flags')\n","import {Inject, Injectable} from \"@angular/core\";\nimport {CountryData, CountryDdi, FLAG_PROVIDER_URL} from \"../providers/flag.provider\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {map, of, tap, take} from \"rxjs\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\nenum CountryLanguageMap {\n EN = 'US',\n PT = 'BR',\n ES = 'ES'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class CountryFlagService {\n private defaultCountryCode = 'br';\n\n private defaultCountryLanguage = 'pt_br';\n\n private cacheList: CountryData[] = []\n\n constructor(\n @Inject(FLAG_PROVIDER_URL)\n private readonly flagUrl: string,\n private readonly http: HttpClient,\n private readonly translateService: TranslateService\n ) {}\n\n list = () => {\n if (!this.flagUrl) {\n return of([]);\n }\n\n if (this.cacheList.length) {\n return of([...this.cacheList]);\n }\n\n return this.http.get<CountryDdi[]>(this.flagUrl).pipe(\n map(countryData => countryData.map(this.formatCountryData)),\n tap(data => this.cacheList = data)\n );\n }\n\n getDefaultCountryFlag(searchData: CountryData[], useCountryCode?: string) {\n const language = this.getDefaultCountryLanguage();\n const countryCode = useCountryCode || this.extractCountryCode([ \n language, navigator.language \n ]);\n return this.getCountryDataForFlag(searchData, countryCode);\n }\n\n getCountryDataForFlag(searchData: CountryData[], countryCode: string) {\n return searchData.find(countryItem => countryItem.countryCode === countryCode) || searchData[0];\n }\n\n private getDefaultCountryLanguage() {\n const language = this.translateService.currentLang;\n\n if (!language) {\n return this.defaultCountryLanguage;\n }\n\n const [mainLanguage, countryLanguage] = language?.split(/[_\\-]/);\n\n if (countryLanguage) {\n return language;\n }\n\n const defaultCountryLanguage = Object.keys(CountryLanguageMap).includes(mainLanguage.toUpperCase() as any) &&\n CountryLanguageMap[mainLanguage.toUpperCase() as keyof typeof CountryLanguageMap];\n\n return defaultCountryLanguage ? language + '_' + defaultCountryLanguage : this.defaultCountryLanguage;\n }\n\n private extractCountryCode(languagesToSearch: string[]) {\n let foundCountryCode = null, currentIndex = 0;\n\n while (foundCountryCode === null && currentIndex < languagesToSearch.length) {\n const language = languagesToSearch[currentIndex];\n const [, secondLanguage] = language.split(/[_\\-]/)\n\n const countryCode = secondLanguage?.toLowerCase() || language.toLowerCase();\n\n if (countryCode) {\n foundCountryCode = countryCode;\n }\n\n currentIndex++;\n }\n\n return foundCountryCode || this.defaultCountryCode;\n }\n\n private formatCountryData({mask, dash_mask, ...data}: CountryDdi): CountryData {\n return {\n ...data,\n mask: mask.replace(/[0-9]/g, '0').replace('X', '9'),\n dashMask: dash_mask\n };\n\n }\n}\n","export const DIGIT_REGEX = /\\d/g;\nexport const NON_DIGIT_REGEX = /\\D+/g;\n","import {parsePhoneNumber} from \"libphonenumber-js\";\n\nexport function getCountryFromPhone(phone: string) {\n if (!phone) return;\n const onlyNumbers = phone.replace(/[^\\d+]/g, '').replace(/\\D/g, '');\n\n try {\n const phoneLocation = parsePhoneNumber(`+${onlyNumbers}`);\n\n if (phoneLocation && phoneLocation.country)\n return phoneLocation.country as string;\n } catch (e) {\n return 'BR';\n }\n return 'BR';\n}\n","import {\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input, OnInit,\n Output,\n Provider,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport {ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Overlay} from \"@angular/cdk/overlay\";\nimport {debounceTime, map, Subscription} from \"rxjs\";\nimport {AskDropdownDirective} from \"../../directives\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {filterSelectedList} from \"../../../shared/helpers/filter.helper\";\nimport CountryFlagService from \"../../../shared/services/country-flag.service\";\nimport {CountryData} from \"../../../shared/providers/flag.provider\";\nimport {NON_DIGIT_REGEX} from \"../../../shared/utils/regex\";\nimport {getCountryFromPhone} from \"../../helpers/phone.helper\";\nimport {OverlayComponent} from \"../../classes/overlay.component\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => PhoneDdiComponent),\n};\n\n@Component({\n selector: 'ask-phone-ddi',\n templateUrl: './phone-ddi.component.html',\n styleUrls: ['./phone-ddi.component.scss'],\n providers: [valueAccessor],\n})\nexport class PhoneDdiComponent extends OverlayComponent implements OnInit, ControlValueAccessor {\n @Input() disabled = false;\n @Input() value = '';\n @Input() useCountryCode!: string;\n @Output() valueChange = new EventEmitter<string>();\n @Output() onChangeFlag = new EventEmitter<CountryData>();\n\n @ViewChild('phoneContainer') phoneContainer: ElementRef | undefined\n\n @ViewChild('wrapper') wrapper: ElementRef | undefined\n\n @ViewChild(\"menuContainer\") menuContainer: ElementRef | undefined\n\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n @ViewChildren(AskDropdownDirective)\n dropdownList?: QueryList<AskDropdownDirective>;\n\n selectedFlag?: CountryData;\n countryItems: CountryData[] = []\n onChange!: (value?: any) => void;\n onTouch!: () => void;\n protected closed = true;\n protected inputValue = ''\n protected searchFieldControl = new FormControl(\"\")\n protected filteredOptions: any[] = []\n private _destroy = inject(DestroyRef)\n private scrollSub?: Subscription;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n private countryFlagService: CountryFlagService\n ) {\n super(overlay, viewContainerRef);\n }\n\n ngOnInit() {\n this.countryFlagService.list().subscribe(this.addAvailableFlags.bind(this))\n this.handleInputChange();\n }\n\n onPaste(event: any) {\n event.preventDefault()\n const pastedText = event.clipboardData?.getData('text') || ''\n const countryCode = this.selectedFlag?.code.substring(1);\n const countryMask = this.selectedFlag?.mask;\n if (countryCode && countryMask && pastedText.startsWith(countryCode) && pastedText.length === countryMask.length) {\n const number = pastedText.substring(countryCode.length);\n this.inputValue = number;\n this.onChangePhoneNumber(number);\n return;\n }\n this.inputValue = pastedText;\n this.onChangePhoneNumber(pastedText);\n\n }\n\n handleOptionSelected(item: any) {\n this.selectedFlag = item;\n this.hideOptions();\n this.onChange('');\n this.onChangeFlag.emit(this.selectedFlag);\n setTimeout(() => {\n this.inputValue = '';\n this.searchFieldControl.setValue('');\n this.value = '';\n });\n }\n\n display(option: any) {\n return this.displayFn(option)\n }\n\n override shouldClose(event: MouseEvent) {\n return !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.menuContainer?.nativeElement.contains(event.target)\n }\n\n override afterClosed() {\n this.closed = true;\n this.searchFieldControl.setValue('')\n this.scrollSub?.unsubscribe();\n }\n\n handleFlagClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n }\n\n showOptions() {\n this.closed = false\n if (this.phoneContainer && this.overlayContent) {\n this.open(this.phoneContainer, this.overlayContent, {\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n maxHeight: 300,\n })\n }\n }\n\n hideOptions() {\n this.close();\n }\n\n onChangePhoneNumber(number: string) {\n const newValue = number?.replace(NON_DIGIT_REGEX, '');\n\n if (this.selectedFlag && newValue?.startsWith(this.selectedFlag?.code.substring(1))) {\n this.value = newValue\n this.onChange(this.value)\n } else if (!newValue || !this.value.includes(newValue)) {\n // substring to remove the + from the code (ex: +55 -> 55)\n this.value = (newValue ? (this.selectedFlag?.code ?? '').substring(1) : '') + newValue;\n this.onChange(this.value)\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n if (this.countryItems.length && this.value) {\n this.initSelectedFlag(this.countryItems);\n }\n }\n\n protected readonly displayFn = (countryFlag: any) => `${countryFlag.countryName} (${countryFlag.code})`;\n\n protected readonly filterFn = (search: string) =>\n filterSelectedList(this.countryItems, search, ['code', 'countryName']);\n\n private addAvailableFlags(data: CountryData[]) {\n this.countryItems = data;\n this.filteredOptions = this.countryItems;\n this.initSelectedFlag(data);\n }\n\n private initSelectedFlag(data: CountryData[]) {\n if (!this.value) {\n return this.getDefaultCountryFlag(data);\n }\n const country = getCountryFromPhone(this.value);\n if (!country) {\n return this.getDefaultCountryFlag(data);\n }\n this.selectedFlag = this.countryItems.find(item => item.countryCode === country.toLowerCase())\n const numberWithoutCountry = this.value.substring(this.selectedFlag?.code.substring(1).length || 0)\n\n setTimeout(() =>{\n this.inputValue = numberWithoutCountry;\n this.onChangeFlag.emit(this.selectedFlag);\n })\n }\n\n private getDefaultCountryFlag(data: CountryData[]) {\n this.selectedFlag = this.countryFlagService.getDefaultCountryFlag(data, this.useCountryCode);\n this.onChangeFlag.emit(this.selectedFlag);\n }\n\n private handleInputChange() {\n this.searchFieldControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n map(value => this.filterFn(value || ''))\n ).subscribe(items => {\n this.filteredOptions = items\n })\n }\n\n handlePhoneChange(event: any) {\n this.onChangePhoneNumber(event.target.value)\n }\n}\n","<div #phoneContainer [style]=\"{cursor: disabled ? 'not-allowed' : 'auto'}\" class=\"phone-ddi\">\n\n <div\n #wrapper\n (click)=\"handleFlagClick()\"\n *ngIf=\"selectedFlag\"\n [style]=\"{cursor: !disabled ? 'pointer' : 'not-allowed'}\"\n class=\"flag\"\n data-testid=\"flag\">\n\n <div [style]=\"{backgroundPosition: this.selectedFlag?.backgroundPosition}\" class=\"flag-icon\"></div>\n <div class=\"flag-arrow\"></div>\n </div>\n\n <input\n *ngIf=\"selectedFlag; else loadingPhoneInput\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputValue\"\n (change)=\"handlePhoneChange($event)\"\n [placeholder]=\"selectedFlag.mask\"\n [mask]=\"selectedFlag.mask\"\n [prefix]=\"selectedFlag.code + ' '\"\n (paste)=\"onPaste($event)\"\n askAutofocus\n class=\"phone\"\n />\n\n <ng-template #loadingPhoneInput>\n <div class=\"skeleton\">\n <ask-skeleton [barsHeight]=\"24\" [radius]=\"10\" style=\"height: 24px;\"/>\n </div>\n </ng-template>\n\n</div>\n\n<ng-template #overlayContent>\n <div #menuContainer class=\"menu-container\">\n <div [style]=\"{padding: '8px'}\">\n <ask-input\n [formControl]=\"searchFieldControl\"\n [placeholder]=\"'FIND_DDI_OR_COUNTRY' | translate\"\n [autoFocus]=\"true\"\n class=\"search\"\n />\n </div>\n\n <ng-container *ngIf=\"!filteredOptions.length; else list\">\n <span class=\"empty\">{{\n 'NO_OPTIONS' | translate\n }}</span>\n </ng-container>\n\n <ng-template #list>\n <div [askScrollThreshold]=\"50\" askScroll class=\"list\">\n <ng-container *ngFor=\"let countryItem of filteredOptions\">\n <div\n (click)=\"handleOptionSelected(countryItem)\"\n class=\"option-item\"\n >\n <div [style]=\"{backgroundPosition: countryItem.backgroundPosition}\" class=\"country\"></div>\n <p class=\"text\">{{ display(countryItem) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n</ng-template>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'forceBreakLine'})\nexport class ForceBreakLinePipe implements PipeTransform {\n\n transform(style: any, replaceNewLines?: any) {\n return style.replace(/<br\\s*\\/?>/ig, '\\r\\n\\r\\n').replace(/\\\\n/g, '\\n');\n }\n}\n","import {Subject} from \"rxjs\";\nimport {OverlayRef} from \"@angular/cdk/overlay\";\nimport {ElementRef} from \"@angular/core\";\n\nexport class ModalRef {\n private closeSubject = new Subject<any | null>()\n public element?: HTMLElement\n\n constructor(private overlayRef: OverlayRef) {\n }\n\n close(data?: any) {\n this.closeSubject.next(data ?? null)\n this.overlayRef.dispose()\n }\n\n get afterClose() {\n return this.closeSubject.asObservable()\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type ModalConfig = {\n hasBackdrop?: boolean;\n onScroll?: 'close' | 'keep';\n data?: any;\n fullscreen?: boolean;\n maxWidth?: number;\n scroll?: boolean;\n};\n\nexport const ASK_MODAL_CONFIG = new InjectionToken<ModalConfig>(\n 'Default modal options'\n);\nexport const ASK_MODAL_DATA = new InjectionToken<any>('Modal data');\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector } from '@angular/core';\nimport {\n AskModalConfirmData,\n ConfirmationModalComponent,\n} from '../../components/modal/confirmation-modal/confirmation-modal.component';\nimport {\n ComponentType,\n ModalComponent,\n} from '../../components/modal/modal.component';\nimport { ModalRef } from './modal-ref';\nimport { ASK_MODAL_DATA, ModalConfig } from './modal.config';\n\ntype Positions = Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n // TODO: create a state of open modals\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\n\n constructor(\n private overlay: Overlay, \n private injector: Injector, \n private overlayPositionBuilder: OverlayPositionBuilder) {}\n\n open<T>(component: ComponentType<T>, config?: ModalConfig, baseElement: HTMLElement = document.body) {\n const overlayRef = this.getOverlay(config);\n const finalConfig = {\n data: config?.data ?? null,\n };\n const modalRef = new ModalRef(overlayRef);\n const injector = this.createInjector({ ...finalConfig }, modalRef);\n const modalPortal = new ComponentPortal(ModalComponent, null, injector);\n const ref = overlayRef.attach(modalPortal);\n\n modalRef.element = ref.location.nativeElement;\n // If necessary, this can be parametrized using ModalConfig interface\n overlayRef.backdropClick().subscribe(() => modalRef.close());\n\n ref.instance.content = component;\n ref.instance.fullscreen = config?.fullscreen || false;\n ref.instance.scroll = config?.scroll || false;\n\n return modalRef;\n }\n\n confirmModal(data: AskModalConfirmData) {\n return this.open(ConfirmationModalComponent, {\n data,\n maxWidth: 440,\n });\n }\n\n private createInjector(\n config: ModalConfig['data'],\n modalRef: ModalRef\n ): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_MODAL_DATA, useValue: config.data },\n { provide: ModalRef, useValue: modalRef },\n ],\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .global()\n .centerVertically()\n .centerHorizontally();\n }\n\n private setOverlayConfig(elementRef: ElementRef, hasBackdrop: boolean, positions: Positions) {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(elementRef)\n .withPositions(this.getOverlayPosition(positions));\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n return {\n hasBackdrop: hasBackdrop,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private getOverlayPosition(positions: Positions): ConnectedPosition[] {\n if (positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[positions]);\n }\n\n else if (Array.isArray(positions)) {\n chosenPositions = [...positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\n ]\n }\n\n // Modal config can be used to parametrize the overlay creation params\n getOverlay(config?: ModalConfig) {\n const positionStrategy = this.getPositionStrategy();\n const dimensionConfig: OverlayConfig = config?.fullscreen\n ? { width: '100vw', height: '100vh' }\n : { maxWidth: config?.maxWidth ?? '80vw' };\n\n return this.overlay.create({\n positionStrategy,\n hasBackdrop: config?.hasBackdrop || true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n disposeOnNavigation: true,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n ...dimensionConfig,\n });\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport {\n ButtonAppearance,\n ButtonColor,\n} from '../../../directives/button/ask-base-button.directive';\nimport { ASK_MODAL_DATA, ModalRef } from '../../../services/modal';\n\n@Component({\n selector: 'lib-confirmation-modal',\n templateUrl: './confirmation-modal.component.html',\n styleUrls: ['./confirmation-modal.component.scss'],\n})\nexport class ConfirmationModalComponent {\n protected title = '';\n protected text = '';\n protected buttons: ButtonConfig[] = [];\n constructor(\n protected modalRef: ModalRef,\n @Inject(ASK_MODAL_DATA) data: AskModalConfirmData\n ) {\n this.title = data.title;\n this.text = data.text;\n this.buttons = data.buttons ?? [];\n }\n}\n\nexport interface AskModalConfirmData {\n title: string;\n text: string;\n buttons?: ButtonConfig[];\n}\n\ntype ButtonConfig = {\n text: string;\n appearance?: ButtonAppearance;\n color: ButtonColor;\n value: string;\n};\n","<h1 class=\"modal-title\" askModalHeader>{{ title }}</h1>\n<p\n askModalBody\n *ngIf=\"text\"\n class=\"modal-content\"\n data-testid=\"ask-confirmation-modal\"\n>\n {{ text }}\n</p>\n<div askModalFooter class=\"modal-actions\">\n <ng-container *ngFor=\"let button of buttons\">\n <ng-container [ngSwitch]=\"button.appearance\">\n <button\n *ngSwitchCase=\"'text'\"\n size=\"medium\"\n askTextButton\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n <button\n *ngSwitchCase=\"'outlined'\"\n askStrokedButton\n size=\"medium\"\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n <button\n *ngSwitchDefault\n askButton\n size=\"medium\"\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n </ng-container>\n</div>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-loading-bar',\n templateUrl: './loading-bar.component.html',\n styleUrls: ['./loading-bar.component.scss']\n})\nexport class LoadingBarComponent {\n @Input() mode: 'indeterminate' | 'determinate' = 'indeterminate';\n}\n","<mat-progress-bar [mode]=\"mode\" color=\"primary\"/>\n","import Quill from 'quill';\n\nlet BlockEmbed = Quill.import('blots/block/embed');\n\nexport class HTMLPanelQuillBlot extends BlockEmbed {\n static blotName = 'htmlPanel';\n static tagName = 'div';\n static className = 'quill-html-pannel';\n\n static create(html: string) {\n let node: HTMLElement = super.create();\n\n const el = document.createElement('div');\n el.contentEditable = 'false';\n el.style.cursor = 'default'; \n el.style.all = 'initial';\n el.innerHTML = html;\n node.appendChild(el);\n return node;\n }\n\n static value(domNode: HTMLElement) {\n return (domNode.firstChild as HTMLElement)?.innerHTML;\n }\n}\n\n\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent {\n @Input() prefix: string = '';\n @Input() content: string | number | null = '';\n @Input() suffix: string = '';\n @Input() bold: boolean = false;\n}\n","<div class=\"container\" [class.-bolder]=\"bold\">\n {{ prefix }}{{ content }}{{ suffix }}\n</div>\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-arrow-tag',\n templateUrl: './arrow-tag.component.html',\n styleUrl: './arrow-tag.component.scss'\n})\nexport class ArrowTagComponent {\n @Input({ required: true }) value!: string;\n @Input() @HostBinding('style.--arrow-tag-bg-color') backgroundColor: string = '#132939';\n @Input() @HostBinding('style.--arrow-tag-font-color') fontColor: string = 'var(--color-text-inverse-contrast)';\n}\n","{{ value }}\n\n<svg class=\"arrow\" width=\"14\" height=\"28\" viewBox=\"0 0 14 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_594_353)\">\n <path d=\"M11.5428 10.9544L2.55528 1.27785C1.79844 0.46299 0.736534 0 -0.375576 0H-22C-24.2091 0 -26 1.79086 -26 4V24C-26 26.2091 -24.2091 28 -22 28H-0.443661C0.708059 28 1.80389 27.5036 2.56338 26.6378L11.619 16.3143C12.9716 14.7724 12.9387 12.4573 11.5428 10.9544Z\" />\n </g>\n <defs>\n <clipPath id=\"clip0_594_353\">\n <rect width=\"14\" height=\"28\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-tab',\n templateUrl: './tab.component.html',\n styleUrl: './tab.component.scss'\n})\nexport class TabComponent {\n @Input() value: any;\n\n public callbackFn!: Function;\n public active = false;\n\n protected onClick() {\n this.callbackFn(this)\n }\n}\n","<button type=\"button\" class=\"tab-button\" [class.-active]=\"active\" (click)=\"onClick()\">\n <ng-content></ng-content>\n</button>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport {TabComponent} from \"./tab/tab.component\";\n\n@Component({\n selector: 'ask-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss'\n})\nexport class TabGroupComponent implements AfterContentInit {\n @Input() active: any;\n @Output() activeChange: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(TabComponent) tabs!: QueryList<TabComponent>;\n\n ngAfterContentInit() {\n this.tabs.forEach((tab: TabComponent) => {\n tab.active = this.active == tab.value;\n tab.callbackFn = this.onTabChange.bind(this);\n });\n }\n\n onTabChange(tab: TabComponent) {\n if (this.active === tab.value) return;\n\n this.active = tab.value;\n this.activeChange.emit(this.active);\n\n this.tabs.forEach(tab => {\n tab.active = this.active == tab.value;\n })\n }\n\n}\n","<div class=\"tab-list\"><ng-content #content></ng-content></div>\n","import { Directive, HostBinding, Input } from '@angular/core';\ntype Size =\n | 8\n | 10\n | 12\n | 14\n | 16\n | 18\n | 20\n | 24\n | 28\n | 30\n | 32\n | 40\n | 48\n | 56\n | 64;\n\n@Directive({\n host: {\n '[class.sizeable]': 'true',\n },\n})\nexport class SizeableDirective {\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n @HostBinding('style.fontSize.px')\n @Input()\n size: Size = 20;\n @Input() disabled: boolean = false;\n\n ngOnChanges() {}\n}\n","export const names = [\n 'chatweb',\n 'email',\n 'facebook',\n 'instagram',\n 'phone',\n 'whatsapp',\n] as const;\nexport const themes = ['dark', 'light'] as const;\nexport const variations = [\n 'contrast',\n 'default',\n 'disabled',\n 'grey',\n 'inverse',\n] as const;\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageUtilService<T> {\n\n constructor(private localstorage: Storage) { }\n\n public getItem(key: string): T {\n return JSON.parse(this.localstorage.getItem(key) as string);\n }\n\n public setItem(key: string, value: T): void {\n this.localstorage.setItem(key, JSON.stringify(value));\n }\n\n public removeItem(key: string): void {\n this.localstorage.removeItem(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StorageUtilService} from \"../storage/storage-util.service\";\nimport { BehaviorSubject } from 'rxjs';\n\ntype Theme = 'dark' | 'light';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n themeKey = 'asksuite-theme-color';\n theme$ = new BehaviorSubject<Theme>('light');\n\n constructor(private readonly storageUtilService: StorageUtilService<Theme>) {\n const theme = this.storageUtilService.getItem(this.themeKey) || 'light';\n this.theme$.next(theme);\n this.saveTheme();\n }\n\n getTheme(){\n return this.theme$.value;\n }\n\n setTheme(theme: Theme) {\n this.theme$.next(theme);\n this.saveTheme();\n }\n\n listenThemeChange(){\n return this.theme$.asObservable();\n }\n\n private saveTheme(){\n document.body.className = this.theme$.value\n this.storageUtilService.setItem(this.themeKey, this.theme$.value)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { map, Observable } from 'rxjs';\nimport { ThemeService } from '../theme/theme.service';\nimport { CustomIconNames, CustomIconVariations } from '../../interfaces/icons.type';\nimport { names, themes, variations } from '../../constants/icons';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomIconsRegisterService {\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private theme: ThemeService,\n ) {}\n\n register() {\n const icons = this.getIconSrcs();\n for (const cIcon of icons) {\n this.matIconRegistry.addSvgIcon(\n cIcon,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n `assets/icons/proprietary/${cIcon}.svg`\n ),\n );\n }\n }\n\n getIcon$(name: CustomIconNames, variations: CustomIconVariations) {\n return (this.theme.listenThemeChange() as unknown as Observable<string>).pipe(map((theme) => `${theme}-${name}-${variations}`));\n }\n\n hasIcon(name: string) {\n return names.includes(name as any);\n }\n\n private getIconSrcs() {\n let _icons = [];\n\n for (const theme of themes) {\n for (const variation of variations) {\n for (const name of names) {\n _icons.push(`${theme}-${name}-${variation}`);\n }\n }\n }\n return _icons;\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { MatIconModule, MatIcon } from '@angular/material/icon';\nimport { Subscription } from 'rxjs';\nimport { CustomIconsRegisterService } from '../../services/custom-icon-register/custom-icon-register.service';\nimport { SizeableDirective } from '../../directives/sizeable/sizeable.directive';\nimport { CustomIconNames, CustomIconVariations } from '../../interfaces/icons.type';\n\ntype MatIconFontSets = 'material-icons' | 'material-symbols-outlined' | 'material-icons-outlined' //| 'material-icons-round' | 'material-icons-sharp' | 'material-icons-two-tone';\n\n@Component({\n selector: 'ask-icon-v2',\n standalone: true,\n imports: [MatIconModule],\n templateUrl: './icon-v2.component.html',\n styleUrl: './icon-v2.component.scss',\n providers: [{ provide: SizeableDirective, useExisting: IconV2Component }],\n})\nexport class IconV2Component extends SizeableDirective {\n @ViewChild(MatIcon, { static: true }) matIcon?: MatIcon;\n\n @Input({ required: true })\n name: CustomIconNames | string = '';\n @Input()\n appearance: Exclude<CustomIconVariations, 'disabled'> = 'default';\n @Input()\n theme: 'dark' | 'light' = 'light';\n @Input()\n color?: string;\n @Input()\n matFontSet: MatIconFontSets = 'material-icons';\n\n protected fontIcon: string = '';\n protected svgIcon: string = '';\n\n\n\n private iconSubscription?: Subscription;\n\n constructor(private customIconRegister: CustomIconsRegisterService) {\n super();\n }\n\n ngOnInit() {\n this.prepareIcon();\n }\n\n override ngOnChanges() {\n this.prepareIcon();\n }\n\n ngOnDestroy() {\n this.iconSubscription?.unsubscribe();\n }\n\n private prepareIcon() {\n this.iconSubscription?.unsubscribe();\n\n if (this.customIconRegister.hasIcon(this.name)) {\n this.iconSubscription = this.prepareCustomIconName().subscribe(\n (iconName: string) => {\n this.svgIcon = iconName;\n }\n );\n } else {\n this.fontIcon = this.name;\n }\n }\n\n private prepareCustomIconName() {\n let appearance: CustomIconVariations = this.appearance;\n\n if (this.disabled) appearance = 'disabled';\n\n return this.customIconRegister.getIcon$(\n this.name as CustomIconNames,\n appearance\n );\n }\n}\n","<mat-icon inline [style.color]=\"color\" [fontSet]=\"matFontSet\" [svgIcon]=\"svgIcon\">{{fontIcon}}</mat-icon>\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {ButtonComponent} from './components/button/button.component';\nimport {CommonModule} from '@angular/common';\nimport {MatTooltipModule} from '@angular/material/tooltip';\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 {AutocompleteComponent} from './components/autocomplete/autocomplete.component';\nimport {CdkConnectedOverlay, CdkOverlayOrigin, OverlayModule,} 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 {\n DatePickerCalendarComponent\n} from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SkeletonComponent} from './components/skeleton/skeleton.component';\nimport {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';\nimport {ToastComponent} from './components/toast/toast.component';\nimport {SpinnerComponent} from \"./directives/spinner/spinner.component\";\nimport {\n AskButtonDirective,\n AskDropdownDirective,\n AskTextButtonDirective,\n AskTooltipDirective,\n AutofocusDirective,\n BadgeDirective,\n InputDirective,\n ListItemDirective,\n RichtextToolboxDirective,\n ScrollDirective,\n SpinnerDirective\n} from \"./directives\";\nimport {ModalBodyDirective, ModalComponent, ModalFooterDirective, ModalHeaderDirective} from './components/modal';\nimport {CharacterCounterComponent} from './components/character-counter/character-counter.component';\nimport {AccordionComponent} from \"./components/accordion/accordion.component\";\nimport {ExtendablePanelComponent} from \"./components/accordion/extendable-panel/extendable-panel.component\";\nimport { TableComponent } from './components/table/table.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { PaginatePipe } from './pipes/paginate/paginate.pipe';\nimport { RichtextUrlPromptComponent } from './components/richtext-url-prompt/richtext-url-prompt.component';\nimport { RichtextToolboxComponent } from './components/richtext-toolbox/richtext-toolbox.component';\nimport {PhoneDdiComponent} from './components/phone-ddi/phone-ddi.component';\nimport {NgxMaskDirective, NgxMaskPipe, provideNgxMask} from \"ngx-mask\";\nimport {FLAG_PROVIDER_URL} from \"../shared/providers/flag.provider\";\nimport {ForceBreakLinePipe} from \"./pipes/force-break-line/force-break-line.pipe\";\nimport { ConfirmationModalComponent } from './components/modal/confirmation-modal/confirmation-modal.component';\nimport { LoadingBarComponent } from './components/loading-bar/loading-bar.component';\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\nimport { AskStrokedButtonDirective } from './directives/button/ask-stroked-button.directive';\nimport Quill from 'quill';\nimport { HTMLPanelQuillBlot } from './helpers/html-panel-quill-blot.helper';\nimport { IconComponent } from './components/icon/icon.component';\nimport { TagComponent } from \"./components/tag/tag.component\";\nimport { ArrowTagComponent } from './components/arrow-tag/arrow-tag.component';\nimport { TabGroupComponent } from './components/tab-group/tab-group.component';\nimport { TabComponent } from './components/tab-group/tab/tab.component';\nimport { IconV2Component } from './components/icon-v2/icon-v2.component';\nimport { CustomIconsRegisterService } from './services/custom-icon-register/custom-icon-register.service';\nimport { StorageUtilService } from './services/storage/storage-util.service';\n\n\nQuill.register(HTMLPanelQuillBlot);\n\nexport function initMyLib(myLibService: Storage) {\n return new StorageUtilService(myLibService);\n}\n\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n PhoneDdiComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n ToastComponent,\n AskButtonDirective,\n ModalComponent,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent,\n TableComponent,\n TagComponent,\n PaginationComponent,\n PaginatePipe,\n RichtextToolboxDirective,\n RichtextUrlPromptComponent,\n RichtextToolboxComponent,\n AskTextButtonDirective,\n ForceBreakLinePipe,\n ConfirmationModalComponent,\n LoadingBarComponent,\n AskStrokedButtonDirective,\n InputDirective,\n ListItemDirective,\n ArrowTagComponent,\n TabGroupComponent,\n TabComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n MatTooltipModule,\n NgxMaskDirective,\n NgxMaskPipe,\n MatProgressBarModule,\n IconComponent,\n IconV2Component\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n PhoneDdiComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n AskButtonDirective,\n AskTextButtonDirective,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent,\n TableComponent,\n PaginationComponent,\n PaginatePipe,\n RichtextToolboxDirective,\n ForceBreakLinePipe,\n LoadingBarComponent,\n AskStrokedButtonDirective,\n InputDirective,\n ListItemDirective,\n IconComponent,\n TagComponent,\n ArrowTagComponent,\n TabGroupComponent,\n TabComponent,\n IconV2Component\n ],\n providers: [\n {\n provide: Storage,\n useValue: window.localStorage\n },\n provideNgxMask(),\n ]\n})\nexport class AsksuiteCitrusModule {\n static forRoot(params?: { flagUrl?: string }): ModuleWithProviders<AsksuiteCitrusModule> {\n return {\n ngModule: AsksuiteCitrusModule,\n providers: [\n {\n provide: FLAG_PROVIDER_URL,\n useValue: params?.flagUrl || ''\n }\n ]\n }\n }\n\n constructor(private customIconsRegisterService: CustomIconsRegisterService) {\n this.customIconsRegisterService.register();\n }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ToastComponent} from \"../../components/toast/toast.component\";\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from \"./toast.config\";\nimport {ToastRef} from \"./toast-ref\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n lastToast?: ToastRef;\n\n private readonly TOP_MARGIN = 72;\n private readonly GAP = 8;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector\n ) { }\n\n success(message: string, config?: ToastConfig) {\n this.pop('success', message, config);\n }\n\n info(message: string, config?: ToastConfig) {\n this.pop('info', message, config);\n }\n\n danger(message: string, config?: ToastConfig, text?: string) {\n this.pop('danger', message, config, text);\n }\n\n warning(message: string, config?: ToastConfig) {\n this.pop('warning', message, config);\n }\n\n pop(type: ToastType, message: string, config?: ToastConfig, text?: string) {\n if (this.lastToast && !this.lastToast?.overlay.overlayElement) {\n this.lastToast = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy();\n const overlayRef = this.overlay.create({\n positionStrategy,\n });\n const toastRef = new ToastRef(overlayRef);\n const injector = this.createInjector({ type, message, config, text }, toastRef);\n const toastPortal = new ComponentPortal(ToastComponent, null, injector);\n\n overlayRef.attach(toastPortal);\n this.lastToast = toastRef;\n }\n\n private createInjector(data: ToastData, toastRef: ToastRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_TOAST_CONFIG, useValue: data },\n { provide: ToastRef, useValue: toastRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().top(this.getTopOffset()).centerHorizontally();\n }\n\n private getTopOffset(): string {\n const offset = this.lastToast ?\n this.lastToast.getPosition().bottom + this.GAP :\n this.TOP_MARGIN;\n\n return `${offset}px`;\n }\n}\n","import {\n Injectable,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n PositionStrategy,\n OverlayConfig,\n ConnectedPosition\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { DropdownContainerComponent } from '../../components/dropdown-container/dropdown-container.component';\n\nexport interface DropdownConfig {\n templateToRender: TemplateRef<any>;\n viewContainerRef: ViewContainerRef;\n referenceElement: HTMLElement;\n positionParams: any;\n closeOnOutsideClick?: boolean;\n}\n\nexport interface DropdownRef {\n close: (result?: any) => void;\n afterClosed: Subject<any>;\n}\n\n// Define an interface to map an overlay to its template.\ninterface RenderedDropdown {\n overlayRef: OverlayRef;\n template: TemplateRef<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicDropdownService {\n private overlayRefs: OverlayRef[] = [];\n // Keep track of rendered dropdowns and their templates.\n private renderedDropdowns: RenderedDropdown[] = [];\n\n constructor(private overlay: Overlay) {}\n\n /**\n * Opens a new dropdown with the given configuration.\n */\n open(config: DropdownConfig): DropdownRef {\n const overlayRef = this.createOverlay(\n config.referenceElement,\n config.positionParams,\n config.closeOnOutsideClick!\n );\n this.overlayRefs.push(overlayRef);\n\n // Attach the template to the overlay.\n this.attachTemplateToOverlay(\n config.templateToRender,\n config.viewContainerRef,\n overlayRef\n );\n // Track that this template is rendered.\n this.renderedDropdowns.push({ overlayRef, template: config.templateToRender });\n\n const afterClosed$ = this.createAfterClosedSubject();\n this.setupOverlayListeners(overlayRef, config.closeOnOutsideClick!, afterClosed$);\n\n return this.createModalRef(overlayRef, afterClosed$);\n }\n\n /**\n * Exposes a function to check if a given template is rendered.\n */\n public isTemplateRendered(template: TemplateRef<any>): boolean {\n return this.renderedDropdowns.some(item => item.template === template);\n }\n\n /**\n * Creates an overlay with the specified position and configuration.\n */\n private createOverlay(baseElement: HTMLElement, positionParams: any, closeOnOutsideClick: boolean): OverlayRef {\n const positionStrategy = this.createPositionStrategy(baseElement, positionParams);\n const overlayConfig = this.createOverlayConfig(positionStrategy, closeOnOutsideClick);\n return this.overlay.create(overlayConfig);\n }\n\n /**\n * Creates a flexible position strategy for the dropdown.\n */\n private createPositionStrategy(baseElement: HTMLElement, positionParams: any): PositionStrategy {\n const positions: ConnectedPosition[] = [\n { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ];\n\n return this.overlay\n .position()\n .flexibleConnectedTo(baseElement)\n .withPositions(positions)\n .withFlexibleDimensions(false)\n .withPush(false);\n }\n\n /**\n * Creates the configuration for the overlay.\n */\n private createOverlayConfig(positionStrategy: PositionStrategy, closeOnOutsideClick: boolean): OverlayConfig {\n return new OverlayConfig({\n hasBackdrop: closeOnOutsideClick,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n /**\n * Attaches the specified template to the overlay.\n */\n private attachTemplateToOverlay(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n overlayRef: OverlayRef,\n ) {\n const portal = new ComponentPortal(DropdownContainerComponent, viewContainerRef);\n const componentRef = overlayRef.attach(portal);\n componentRef.instance.content = templateRef;\n return portal;\n }\n\n /**\n * Sets up listeners for overlay events.\n */\n private setupOverlayListeners(overlayRef: OverlayRef, closeOnOutsideClick: boolean, afterClosed$: Subject<any>): void {\n if (closeOnOutsideClick) {\n overlayRef.backdropClick().subscribe(() => this.closeModal(overlayRef, null, afterClosed$));\n }\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.closeModal(overlayRef, null, afterClosed$);\n }\n });\n }\n\n /**\n * Creates a subject that emits when the dropdown is closed.\n */\n private createAfterClosedSubject(): Subject<any> {\n return new Subject<any>();\n }\n\n /**\n * Creates a reference for controlling the dropdown.\n */\n private createModalRef(overlayRef: OverlayRef, afterClosed$: Subject<any>): DropdownRef {\n return {\n close: (result?: any) => this.closeModal(overlayRef, result, afterClosed$),\n afterClosed: afterClosed$,\n };\n }\n\n /**\n * Closes the dropdown and cleans up.\n */\n private closeModal(overlayRef: OverlayRef, result: any, subject: Subject<any>): void {\n const overlayIndex = this.overlayRefs.indexOf(overlayRef);\n if (overlayIndex > -1) {\n this.overlayRefs.splice(overlayIndex, 1);\n }\n // Remove from our rendered dropdowns tracking.\n this.renderedDropdowns = this.renderedDropdowns.filter(item => item.overlayRef !== overlayRef);\n overlayRef.dispose();\n subject.next(result);\n subject.complete();\n }\n\n /**\n * Closes all open dropdowns.\n */\n closeAll(): void {\n this.overlayRefs.forEach(ref => ref.dispose());\n this.overlayRefs = [];\n this.renderedDropdowns = [];\n }\n}\n","export const PHONE_MASK_PATTERN = {\n '0': {\n pattern: /0/,\n fallback: '0',\n optional: false\n },\n '#': {\n pattern: /\\d/,\n optional: false\n },\n '_': {\n pattern: /\\d/,\n optional: true\n },\n 'X': {\n pattern: /\\d/,\n optional: true\n },\n '9': {\n pattern: /9/,\n fallback: '9',\n optional: false\n }\n}\n","import {Injectable} from '@angular/core';\nimport {PHONE_MASK_PATTERN} from \"../../../shared/utils/phone-mask-pattern\";\nimport {DIGIT_REGEX} from \"../../../shared/utils/regex\";\n\ntype PhoneMaskPatternKey = keyof typeof PHONE_MASK_PATTERN\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhoneValidationService {\n\n isPhoneValueValid(phone: string, dashMask: string) {\n const maskPatternItemsFound = this.extractMaskPatternItems(dashMask);\n const requiredPatternItemsFound = this.extractRequiredPatternItems(maskPatternItemsFound);\n\n if (!(phone.length >= requiredPatternItemsFound.length && phone.length <= maskPatternItemsFound.length)) {\n return false;\n }\n\n return this.validateMaskedPhoneValue(phone, maskPatternItemsFound);\n }\n\n private extractMaskPatternItems(dashMask: string): PhoneMaskPatternKey[] {\n const patternsOfMask = Object.keys(PHONE_MASK_PATTERN);\n\n return dashMask\n .replace(DIGIT_REGEX, '#')\n .split('')\n .filter((key: string) => patternsOfMask.includes(key)) as PhoneMaskPatternKey[];\n }\n\n private extractRequiredPatternItems(maskPatternItemsFound: PhoneMaskPatternKey[]): PhoneMaskPatternKey[] {\n return maskPatternItemsFound.filter((key: PhoneMaskPatternKey) =>\n PHONE_MASK_PATTERN.hasOwnProperty(key) && !PHONE_MASK_PATTERN[key].optional\n );\n }\n\n private validateMaskedPhoneValue(phoneValue: string, maskPatternItemsFound: PhoneMaskPatternKey[]): boolean {\n return !(maskPatternItemsFound\n .map((key: PhoneMaskPatternKey, index: number) => {\n const currentPattern = PHONE_MASK_PATTERN[key];\n\n const value = phoneValue.charAt(index) || '';\n\n return (currentPattern.optional && !value) || currentPattern.pattern.test(value);\n })\n .filter((result: boolean) => !result).length);\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {AbstractControl, ValidatorFn} from \"@angular/forms\";\nimport {CountryData} from \"../providers/flag.provider\";\nimport {NON_DIGIT_REGEX} from \"../utils/regex\";\nimport {PhoneValidationService} from \"../../lib/services/phone-ddi/phone-validation.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhoneMaskValidator {\n\n constructor(private readonly phoneValidationService: PhoneValidationService) {\n }\n\n validate(selectedFlag: CountryData): ValidatorFn {\n return (control: AbstractControl): { invalidPhoneNumber: boolean } | null => {\n if (!selectedFlag?.dashMask) {\n return null;\n }\n\n const countryCode = selectedFlag.code.replace('+', '');\n const value = control.value\n ?.replace(NON_DIGIT_REGEX, '')\n .replace(new RegExp(`^${countryCode}\\\\D*`), '');\n\n if (!this.phoneValidationService.isPhoneValueValid(value, selectedFlag.dashMask)) {\n return {\n invalidPhoneNumber: true,\n };\n }\n\n return null;\n }\n }\n}\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/phone-ddi/phone-ddi.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';\nexport * from './lib/components/character-counter/character-counter.component';\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/accordion/extendable-panel/extendable-panel.component';\nexport * from './lib/components/table/table.component';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/loading-bar/loading-bar.component';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/icon-v2/icon-v2.component';\nexport * from './lib/components/tag/tag.component';\nexport * from './lib/components/arrow-tag/arrow-tag.component';\nexport * from './lib/components/tab-group/tab-group.component';\nexport * from './lib/components/tab-group/tab/tab.component';\n\n// Directives\nexport * from './lib/directives';\nexport * from './lib/components/modal/directives';\n\n// Services\nexport * from './lib/services/toast/toast.service';\nexport * from './lib/services/modal';\nexport * from './lib/services/dynamic-dropdown/dynamic-dropdown.service';\nexport * from './lib/services/theme/theme.service';\n\n// Pipes\nexport * from './lib/pipes/paginate/paginate.pipe';\nexport * from './lib/pipes/force-break-line/force-break-line.pipe';\n\n// Config\nexport * from './lib/services/toast/toast.config';\n\n// Helpers\nexport * from './lib/pipes/paginate/paginate.helper';\n\n// Interfaces\nexport * from './lib/interfaces/richtext-toolbox.interface';\n\n// Validators\nexport * from './shared/validators/phone-mask.validator';\n\n// Provider\nexport * from './shared/providers/flag.provider';\n\n// Helpers\nexport * from './shared/helpers/filter.helper';\n\n// Classes\nexport * from './lib/classes/overlay.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i4.AutofocusDirective","i1","i2.AskTooltipDirective","i2","i3","i4","i5.ChipsComponent","i6.CheckboxComponent","i7.AutofocusDirective","i8.ScrollDirective","i2.ButtonComponent","i3.DatePickerCalendarComponent","i1.ToastRef","i1.RichtextUrlPromptStateService","i2.AskDropdownDirective","i3.RichtextUrlPromptComponent","i3.PaginationComponent","i5.InputComponent","i6.SkeletonComponent","i9","i3.AskButtonDirective","i4.ModalBodyDirective","i5.ModalHeaderDirective","i6.ModalFooterDirective","i7.AskTextButtonDirective","i8.AskStrokedButtonDirective","i1.StorageUtilService","i3.ThemeService","i1.CustomIconsRegisterService","i1.PhoneValidationService"],"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/directives/autofocus/autofocus.directive.ts","../../../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/directives/tooltip/ask-tooltip.directive.ts","../../../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/classes/overlay.component.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/directives/scroll/scroll.directive.ts","../../../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/services/toast/toast.config.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast-ref.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.ts","../../../projects/asksuite-citrus/src/lib/components/toast/toast.component.html","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.component.html","../../../projects/asksuite-citrus/src/lib/directives/badge/badge.directive.ts","../../../projects/asksuite-citrus/src/lib/components/icon/icon.component.ts","../../../projects/asksuite-citrus/src/lib/components/icon/icon.component.html","../../../projects/asksuite-citrus/src/lib/directives/button/ask-base-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-text-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/button/ask-stroked-button.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/spinner/spinner.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/ask-dropdown.directive.ts","../../../projects/asksuite-citrus/src/lib/helpers/are-objects-equal.helper.ts","../../../projects/asksuite-citrus/src/lib/constants/url-regex.constant.ts","../../../projects/asksuite-citrus/src/lib/classes/richtext-wrapper.ts","../../../projects/asksuite-citrus/src/lib/constants/richtext-toolbox.constants.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt-state.service.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt.component.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-url-prompt/richtext-url-prompt.component.html","../../../projects/asksuite-citrus/src/lib/components/richtext-toolbox/richtext-toolbox.component.ts","../../../projects/asksuite-citrus/src/lib/components/richtext-toolbox/richtext-toolbox.component.html","../../../projects/asksuite-citrus/src/lib/classes/toolbox.ts","../../../projects/asksuite-citrus/src/lib/classes/bubble-toolbox.ts","../../../projects/asksuite-citrus/src/lib/classes/topbar-toolbox.ts","../../../projects/asksuite-citrus/src/lib/directives/richtext-toolbox/richtext-toolbox.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/input/input.directive.ts","../../../projects/asksuite-citrus/src/lib/directives/list-item/list-item.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/modal.component.html","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-body.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-footer.directive.ts","../../../projects/asksuite-citrus/src/lib/components/modal/directives/modal-header.directive.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.ts","../../../projects/asksuite-citrus/src/lib/components/character-counter/character-counter.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/extendable-panel/extendable-panel.component.html","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.ts","../../../projects/asksuite-citrus/src/lib/components/accordion/accordion.component.html","../../../projects/asksuite-citrus/src/lib/components/pagination/pagination.component.ts","../../../projects/asksuite-citrus/src/lib/components/pagination/pagination.component.html","../../../projects/asksuite-citrus/src/lib/components/table/table.component.ts","../../../projects/asksuite-citrus/src/lib/components/table/table.component.html","../../../projects/asksuite-citrus/src/lib/pipes/paginate/paginate.helper.ts","../../../projects/asksuite-citrus/src/lib/pipes/paginate/paginate.pipe.ts","../../../projects/asksuite-citrus/src/shared/helpers/filter.helper.ts","../../../projects/asksuite-citrus/src/shared/providers/flag.provider.ts","../../../projects/asksuite-citrus/src/shared/services/country-flag.service.ts","../../../projects/asksuite-citrus/src/shared/utils/regex.ts","../../../projects/asksuite-citrus/src/lib/helpers/phone.helper.ts","../../../projects/asksuite-citrus/src/lib/components/phone-ddi/phone-ddi.component.ts","../../../projects/asksuite-citrus/src/lib/components/phone-ddi/phone-ddi.component.html","../../../projects/asksuite-citrus/src/lib/pipes/force-break-line/force-break-line.pipe.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal-ref.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.config.ts","../../../projects/asksuite-citrus/src/lib/services/modal/modal.service.ts","../../../projects/asksuite-citrus/src/lib/components/modal/confirmation-modal/confirmation-modal.component.ts","../../../projects/asksuite-citrus/src/lib/components/modal/confirmation-modal/confirmation-modal.component.html","../../../projects/asksuite-citrus/src/lib/components/loading-bar/loading-bar.component.ts","../../../projects/asksuite-citrus/src/lib/components/loading-bar/loading-bar.component.html","../../../projects/asksuite-citrus/src/lib/helpers/html-panel-quill-blot.helper.ts","../../../projects/asksuite-citrus/src/lib/components/tag/tag.component.ts","../../../projects/asksuite-citrus/src/lib/components/tag/tag.component.html","../../../projects/asksuite-citrus/src/lib/components/arrow-tag/arrow-tag.component.ts","../../../projects/asksuite-citrus/src/lib/components/arrow-tag/arrow-tag.component.html","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab/tab.component.ts","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab/tab.component.html","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab-group.component.ts","../../../projects/asksuite-citrus/src/lib/components/tab-group/tab-group.component.html","../../../projects/asksuite-citrus/src/lib/directives/sizeable/sizeable.directive.ts","../../../projects/asksuite-citrus/src/lib/constants/icons.ts","../../../projects/asksuite-citrus/src/lib/services/storage/storage-util.service.ts","../../../projects/asksuite-citrus/src/lib/services/theme/theme.service.ts","../../../projects/asksuite-citrus/src/lib/services/custom-icon-register/custom-icon-register.service.ts","../../../projects/asksuite-citrus/src/lib/components/icon-v2/icon-v2.component.ts","../../../projects/asksuite-citrus/src/lib/components/icon-v2/icon-v2.component.html","../../../projects/asksuite-citrus/src/lib/asksuite-citrus.module.ts","../../../projects/asksuite-citrus/src/lib/services/toast/toast.service.ts","../../../projects/asksuite-citrus/src/lib/services/dynamic-dropdown/dynamic-dropdown.service.ts","../../../projects/asksuite-citrus/src/shared/utils/phone-mask-pattern.ts","../../../projects/asksuite-citrus/src/lib/services/phone-ddi/phone-validation.service.ts","../../../projects/asksuite-citrus/src/shared/validators/phone-mask.validator.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' | 'livechat' | 'dropdown' | 'icon-only' = 'primary';\n @Input() rounded: boolean = false;\n @Input() disabled = false;\n @Input() labelSide: 'left' | 'right' = 'left';\n @Input() loading: boolean = false;\n\n // Event handlers\n @Output() onClick = new EventEmitter<MouseEvent>();\n @Output() onFocus = new EventEmitter<FocusEvent>();\n @Output() onBlur = new EventEmitter<FocusEvent>();\n\n buttonClasses: string = '-primary';\n labelClass: string = '';\n\n\n ngOnChanges(){\n this.buttonClasses = `-${this.type} ${this.size} ${this.rounded ? 'rounded' : ''}`;\n this.labelClass = `-${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=\"spinner\" *ngIf=\"loading\" class=\"spinner\"></span>\n <span data-testid=\"label\" *ngIf=\"label\" class=\"label\" [ngClass]=\"labelClass\">{{ label }}</span>\n <ng-content></ng-content>\n</button>\n","import {AfterViewInit, Directive, ElementRef, Input} from '@angular/core';\n\n@Directive({\n selector: '[askAutofocus]'\n})\nexport class AutofocusDirective implements AfterViewInit{\n\n @Input() askAutofocus: boolean | string = true;\n\n constructor(private elRef: ElementRef) { }\n\n ngAfterViewInit() {\n if (this.elRef && (this.askAutofocus || this.askAutofocus === '')) this.elRef.nativeElement.focus();\n }\n\n}\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 ControlValueAccessor {\n _iconColor = '';\n\n @Input() value: string = '';\n @Input() type: 'text' | 'email' | 'password' = 'text';\n @Input() variation: 'filled' | 'outlined' = 'outlined'\n @Input() placeholder!: string;\n @Input() leftIcon?: string;\n @Input() rightIcon?: string;\n @Input() disabled: boolean = false;\n @Input() noBorder: boolean = false;\n @Input() extraPadding: boolean = false;\n @Input() isClosed = true\n @Input() mask?: string;\n @Input() valuePrefix = ''\n @Input() autoFocus = false\n @Input() set iconColor(color: string) {\n this._iconColor = `var(--${color})`;\n }\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 onChange!: (value?: any) => void;\n onTouch!: () => void;\n\n isFocused = false;\n\n @ViewChild('inputElement', { static: true }) inputElement!: ElementRef;\n\n\n onModelChange(newValue: string) {\n if (this.value !== newValue) {\n this.writeValue(newValue);\n this.onChange && this.onChange(newValue);\n }\n this.onTouch && this.onTouch();\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 focusInput(): void {\n if (this.inputElement) {\n this.inputElement.nativeElement.focus();\n }\n }\n\n blurInput(): void {\n if (this.inputElement) {\n this.inputElement.nativeElement.blur();\n }\n }\n\n /*\n * Control value accessor methods\n */\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\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","<div\n class=\"input-container\"\n [ngClass]=\"{\n 'focus': isFocused,\n 'disabled': disabled,\n 'left-icon': leftIcon,\n 'right-icon': rightIcon,\n }\"\n (click)=\"inputElement.focus()\"\n>\n <span\n *ngIf=\"leftIcon\"\n class=\"material-icons icon-left\"\n [style.color]=\"_iconColor\"\n (click)=\"leftIconClick.emit($event)\"\n >\n {{ leftIcon }}\n </span>\n\n <input\n #inputElement\n class=\"ask-input\"\n [class.-no-border]=\"noBorder\"\n [class.-filled]=\"variation === 'filled'\"\n [class.-extra-padding]=\"extraPadding\"\n [class.-closed]=\"isClosed\"\n [class.-opened]=\"!isClosed\"\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 [mask]=\"mask\"\n [prefix]=\"valuePrefix\"\n [showMaskTyped]=\"!!mask\"\n [askAutofocus]=\"autoFocus\"\n />\n\n <span\n *ngIf=\"rightIcon\"\n class=\"material-icons icon-right\"\n [style.color]=\"_iconColor\"\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, emit: boolean = true) {\n if (option?.value === this.value) {\n return;\n }\n\n this.selectedOption = option;\n this.value = option?.value || null;\n\n if (emit) {\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 this.setSelectedOption(this.value, false);\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, HostBinding, 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 @HostBinding('style.background-color') @Input() backgroundColor = 'var(--secondary-background)';\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n toggleCollapse() {\n this.collapse = !this.collapse;\n }\n\n}\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","import { Directive, HostListener, Input, OnInit } from '@angular/core';\nimport { MatTooltip, TooltipPosition } from '@angular/material/tooltip';\n\n@Directive({\n selector: '[askTooltip]',\n providers: [\n MatTooltip\n ]\n})\nexport class AskTooltipDirective implements OnInit {\n\n @Input() askTooltipMessage: string = '';\n @Input() askTooltipPosition: TooltipPosition = 'below';\n\n constructor(private tooltip: MatTooltip) { }\n\n ngOnInit(): void {\n this.tooltip.position = this.askTooltipPosition;\n this.tooltip.tooltipClass = ['ask-tooltip', `-${this.askTooltipPosition}`];\n this.tooltip.touchGestures = 'off';\n }\n \n @HostListener('mouseenter')\n onMouseEnter() {\n if (!this.askTooltipMessage) return;\n \n this.tooltip.message = this.askTooltipMessage;\n this.tooltip.show();\n }\n \n @HostListener('mouseleave')\n onMouseLeave() {\n this.tooltip.hide();\n }\n}\n","import {Component, Input} from '@angular/core';\nimport { TooltipPosition } from '@angular/material/tooltip';\n\nexport enum AvatarStatus {\n NONE = '',\n ONLINE = 'online',\n BUSY = 'busy',\n ABSENT = 'absent',\n OFFLINE = 'offline'\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 @Input() background: 'primary' | 'secondary' | 'white' | 'dark' = \"primary\";\n @Input() textColor: 'text-white' | 'text-black' = 'text-white'\n @Input() avatarTitle: string = '';\n @Input() avatarTitlePosition: TooltipPosition = 'after';\n @Input() statusTitle: string = '';\n @Input() large?: boolean;\n @Input() small?: boolean;\n @Input() medium?: boolean;\n @Input() selected?: boolean;\n @Input() notSelect: boolean = false;\n @Input() hover?: boolean;\n @Input() isRobot?: boolean;\n @Input() isDisable?: boolean;\n\n @Input()\n set name(value: string) {\n if (value) {\n this._initials = this.generateName(value)\n if (this.background != 'white') {\n this.background = 'dark'\n }\n } else {\n this._initials = '';\n }\n };\n\n private generateName(name: string): string {\n const nameParts = name.trim().split(' ');\n const firstInitial = nameParts[0].toUpperCase().charAt(0);\n const lastInitial = nameParts.length > 1 ? nameParts[nameParts.length - 1].toUpperCase().charAt(0) : '';\n return `${firstInitial}${lastInitial}`;\n }\n\n static readonly BOT_ICON: string = '../assets/img/asksuite-icon.svg';\n\n protected _initials = '';\n\n get image() {\n return this.src || AvatarComponent.BOT_ICON;\n }\n\n}\n","<div class=\"avatar-container\"\n [ngClass]=\"{\n '-primary': !this.src && background === 'primary',\n '-secondary': !this.src && background === 'secondary',\n '-dark': !this.src && background === 'dark',\n '-white': !this.src && background === 'white',\n '-initials': !!_initials,\n '-large': !!large,\n '-small': !!small,\n '-medium': !!medium,\n '-selected': !!selected && !notSelect,\n '-hover': !!hover && !notSelect,\n }\"\n>\n <img\n *ngIf=\"src || isRobot || !_initials\"\n [src]=\"image\"\n alt=\"avatar\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n [ngClass]=\"{ 'disabled': isDisable }\"\n />\n <span\n *ngIf=\"!src && !isRobot && _initials\"\n class=\"initials\"\n askTooltip\n [askTooltipMessage]=\"avatarTitle\"\n [askTooltipPosition]=\"avatarTitlePosition\"\n [ngClass]=\"{textColor, '-small': !!small, '-medium': !!medium}\"\n >{{_initials}}</span>\n\n <span\n [class]=\"'status ' + status\"\n askTooltip\n [askTooltipMessage]=\"statusTitle\"\n [askTooltipPosition]=\"'after'\"\n ></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{\n @Input() content!: TemplateRef<any>;\n}\n","<div class=\"dropdown-container\">\n <ng-container>\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Component,\n ElementRef,\n HostListener,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\n\n@Component({\n template: '',\n})\nexport abstract class OverlayComponent {\n private overlayRef: OverlayRef | undefined;\n private portal: TemplatePortal<any> | undefined;\n private readonly DEFAULT_MAX_HEIGHT = 300;\n\n protected constructor(\n private overlay: Overlay,\n private viewContainerRef: ViewContainerRef\n ) {}\n\n @HostListener('window:mousedown', ['$event'])\n handleClick(event: MouseEvent) {\n this.shouldClose(event) && this.close();\n }\n\n abstract shouldClose(event: Event): boolean;\n\n abstract afterClosed(): void;\n\n protected open(\n wrapper: ElementRef,\n overlayContent: TemplateRef<any>,\n config?: Partial<OverlayConfig>\n ) {\n this.overlayRef = this.getOverlayConfig(wrapper, config);\n if (!this.portal) {\n this.portal = new TemplatePortal(overlayContent, this.viewContainerRef);\n }\n this.overlayRef?.attach(this.portal);\n }\n\n protected close() {\n this.overlayRef?.detach();\n this.afterClosed();\n }\n\n private getOverlayConfig(\n wrapper: ElementRef,\n config?: Partial<OverlayConfig>\n ) {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(wrapper.nativeElement);\n const biggerThanScreen = this.biggerThanScreen(wrapper.nativeElement);\n\n if (biggerThanScreen) {\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ]);\n } else\n positionStrategy.withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n return this.overlay.create({\n width: wrapper.nativeElement.offsetWidth,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n positionStrategy,\n ...config,\n });\n }\n\n private biggerThanScreen(wrapper: HTMLElement) {\n const { y, height } = wrapper.getBoundingClientRect();\n\n return y + this.DEFAULT_MAX_HEIGHT + height > document.body.offsetHeight;\n }\n}\n","import {ChangeDetectionStrategy, ChangeDetectorRef, 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 changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ChipsComponent {\n protected textColor = ''\n\n private colors = [\n { background: '#CDF9F3', textColor: '#118C7B' },\n { background: '#D4DAF3', textColor: '#465DBE' },\n { background: '#CEEEAA', textColor: '#64952D' },\n { background: '#FBC5FF', textColor: '#B916C5' },\n { background: '#FED5C9', textColor: '#9B3F24' },\n { background: '#DDBFE5', textColor: '#723A81' },\n { background: '#FFE0B2', textColor: '#8F6322' },\n { background: '#B2E5FD', textColor: '#286E8F' },\n { background: '#EFC89C', textColor: '#795731' },\n { background: '#E4E7EB', textColor: '#4F5A6A' },\n { background: '#FACDD2', textColor: '#D02A3D' },\n { background: '#D7CDC8', textColor: '#7B665C' }\n ];\n\n @Input()\n set appearance(value: 'light' | 'regular' | 'primary' | 'tag' | 'disable' | 'available' | 'tagList') {\n this._isAppearanceLight = value === 'light';\n this._isAppearancePrimary = value === 'primary'\n this._isAppearanceTag = value === 'tag'\n this._isAppearanceTagDisabled = value === 'disable'\n this._isAppearanceTagAvailable = value === 'available'\n this._isAppearanceTagList = value === 'tagList'\n };\n @Input()\n showAction: boolean = false;\n @Input()\n set size(value: 'small' | 'regular') {\n this._isSmall = value === \"small\";\n };\n\n @Input() color?: string;\n @Input() autoComplete = false;\n\n protected _isSmall = false;\n protected _isAppearanceLight = false;\n protected _isAppearancePrimary = false;\n protected _isAppearanceTag = false;\n protected _isAppearanceTagDisabled = false;\n protected _isAppearanceTagAvailable = false;\n protected _isAppearanceTagList = false;\n\n constructor(private change: ChangeDetectorRef) {}\n\n @Output()\n protected action = new EventEmitter<void>()\n\n ngOnChanges(){\n this.textColor = this.colors.find(c => c.background == this.color?.toUpperCase())?.textColor || '#132939CF';\n this.change.markForCheck();\n }\n}\n","<div class=\"chip-container\"\n [ngClass]=\"{\n '-action': showAction,\n '-small': _isSmall,\n '-light': _isAppearanceLight,\n '-primary': _isAppearancePrimary,\n '-tag': _isAppearanceTag,\n '-disabled': _isAppearanceTagDisabled,\n '-available': _isAppearanceTagAvailable,\n '-tag-list' : _isAppearanceTagList\n }\"\n [style.background-color]=\"color\"\n [style.color]=\"_isAppearanceTagDisabled || _isAppearanceTagAvailable ? textColor : ''\"\n>\n <span class=\"body\" #body [title]=\"body.innerText\"><ng-content></ng-content></span>\n <div class=\"action\" *ngIf=\"showAction\">\n <span class=\"material-icons\" [ngClass]=\"{'-auto-complete': autoComplete}\" data-testid=\"icon\" (click)=\"$event.stopPropagation(); action.emit()\">close</span>\n </div>\n</div>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n Provider\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(() => 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.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(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 }\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 {Directive, ElementRef, EventEmitter, HostListener, Input, Output} from '@angular/core';\n\n@Directive({\n selector: '[askScroll]'\n})\nexport class ScrollDirective {\n @Input() askScrollThreshold: number = 0;\n\n @Output() scrollEnd = new EventEmitter<void>();\n\n constructor(private el: ElementRef) {}\n\n @HostListener('scroll', ['$event'])\n onScroll(event: Event) {\n const element = event.target as HTMLElement;\n if (this.isScrollAtEnd(element)) {\n this.scrollEnd.emit();\n }\n }\n\n private isScrollAtEnd(element: HTMLElement): boolean {\n const scrollTop = element.scrollTop || element.scrollTop === 0 ? element.scrollTop : 0;\n const scrollHeight = element.scrollHeight || 0;\n const clientHeight = element.clientHeight || 0;\n return scrollTop + clientHeight >= (scrollHeight - Number(this.askScrollThreshold));\n }\n\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Input,\n OnChanges,\n Output,\n Provider,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport {ControlValueAccessor, FormBuilder, FormControl, NG_VALUE_ACCESSOR} from \"@angular/forms\";\nimport {debounceTime, fromEvent, map, Subscription, tap} from \"rxjs\";\nimport {Overlay, OverlayRef} from \"@angular/cdk/overlay\";\nimport {TemplatePortal} from \"@angular/cdk/portal\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { TranslateService } from '@ngx-translate/core';\nimport {OverlayComponent} from \"../../classes/overlay.component\";\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 extends OverlayComponent implements AfterViewInit, ControlValueAccessor, OnChanges {\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 fixedOptionsItems: any[] = [];\n protected filteredOptions: any[] = [];\n protected paginatedFilteredOptions: any[] = [];\n protected selectedOption?: any;\n protected selection: any[] = [];\n protected closed = true;\n protected chipsCollapsed = true\n protected checkAllValue = false\n protected disabled = false;\n protected showChips = false;\n protected showAllSelectionBtn = false;\n protected showPlaceholder = false;\n protected showExpandedSelectionActions = false;\n protected showSelectAllCheckbox = false;\n protected chipsContainerClasses = {\n \"-two\": false,\n \"-three\": false,\n \"-four\": false,\n \"-many\": false\n };\n protected optionsSelected: {[key: string | number]: boolean} = {}\n private changed = 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 _selectAllMessage = '';\n\n private scrollSub?: Subscription;\n\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 maxOptions = 0;\n\n @Input()\n valueProp: string = ''\n\n @Input()\n options: any[] = []\n\n @Input()\n fixedOptions: any[] = []\n\n @Input()\n placeholder = ''\n\n @Input()\n emptyMessage = 'NO_OPTIONS';\n\n @Input()\n selectAll = false\n\n @Input()\n allOptionsSelectedText: string | null = null;\n\n @Input()\n selectAllMessage = this.translate.instant('SELECT_ALL');\n\n @Input()\n iconPropReference?: string;\n\n @Input()\n enableRemove = true;\n\n @Input()\n title?: string;\n\n position: 'above' | 'below' = 'below';\n\n @Output()\n itemCheck = new EventEmitter();\n\n @Output()\n selectionDone = new EventEmitter();\n\n @Output()\n optionRemoved = new EventEmitter();\n\n constructor(private formBuilder: FormBuilder,\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n private change: ChangeDetectorRef,\n private translate: TranslateService) {\n super(overlay, viewContainerRef);\n }\n\n ngAfterViewInit() {\n this.checkAllValue = this.isAllOptionsSelected\n this.checkFixedOptions();\n this.handleInputChange();\n this.title = this.selectedOption?.name || ''\n }\n\n private checkFixedOptions() {\n this.fixedOptionsItems = this.options.filter(option => this.fixedOptions.includes(option[this.valueProp]));\n }\n\n get isAllOptionsSelected() {\n return this.selection.length === this.options.length\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['options']) {\n this._pageNumber = 1\n this.paginatedFilteredOptions = []\n\n this.filteredOptions = changes['options'].currentValue\n .filter((option: any) => !this.fixedOptions.includes(option[this.valueProp]))\n this.updateValidation()\n }\n }\n\n private handleInputChange() {\n this.inputControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n tap(() => {\n this._pageNumber = 1\n this.paginatedFilteredOptions = []\n }),\n map(value => this.filterFn ? this.filterFn(value || '') : [])\n ).subscribe(items => {\n this.filteredOptions = items.filter((option: any) => !this.fixedOptions.includes(option[this.valueProp]))\n this.getMoreItems()\n })\n }\n\n private handleSelectionChange(values: any[]) {\n this.selection = values\n this.checkAllValue = this.isAllOptionsSelected\n\n if (!this.chipsCollapsed) {\n this.chipsCollapsed = this.selection.length < 2\n }\n this.updateValidation()\n this.change.detectChanges()\n }\n\n private updateChipsContainerClasses() {\n this.chipsContainerClasses = {\n \"-two\": this.selectedOptions.length === 2,\n \"-three\": this.selectedOptions.length === 3,\n \"-four\": this.selectedOptions.length === 4,\n \"-many\": this.selectedOptions.length >= 5\n }\n }\n\n handleOptionSelected(item: any) {\n this.selectedOption = item;\n this.onChange(this.selectedOption)\n this.close()\n this.change.detectChanges();\n\n if(item.name) this.title = item.name;\n }\n\n handleAutocompleteClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.chipsCollapsed = true;\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n this.updateValidation();\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n }\n\n protected handleChipsListActionClick(event: Event) {\n event.stopPropagation()\n this.chipsCollapsed = !this.chipsCollapsed;\n this.updateValidation()\n this.updateChipsContainerClasses()\n this.change.detectChanges()\n this.changed = true\n }\n\n showOptions() {\n if (this.closed && this.wrapper && this.overlayContent) {\n this.open(this.wrapper, this.overlayContent, {\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n hasBackdrop: true,\n });\n this.closed = false;\n }\n\n this.updateValidation();\n if (this.paginatedFilteredOptions.length === 0) this.getMoreItems()\n }\n\n hideOptions() {\n this.closed = true;\n this.chipsCollapsed = true;\n this.change.detectChanges()\n this._pageNumber = 1;\n this.paginatedFilteredOptions = [];\n this.updateValidation();\n this.scrollSub?.unsubscribe();\n if (this.changed)\n this.selectionDone.emit();\n this.changed = false\n this.inputControl.patchValue(\"\");\n }\n\n override afterClosed() {\n this.hideOptions()\n this.change.detectChanges()\n }\n\n override shouldClose(event: Event): boolean {\n return !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.list?.nativeElement.contains(event.target);\n }\n\n get selectedOptions(): any[] {\n if (!this.multiple) return this.selectedOption ? [this.selectedOption] : []\n\n return this.chipsCollapsed\n ? this.selection.slice(0, 1)\n : this.selection;\n }\n\n handleSelectAll(checked: boolean) {\n this.selectAllOptions(checked);\n this.selection = checked ? this.options : []\n this.onChange(this.selection)\n this.updateValidation()\n this.change.detectChanges()\n this.itemCheck.emit(this.selection);\n this.changed = true\n }\n\n valueChange(option: any, value: boolean) {\n if (this.shouldProcessMaxOptions(option, value)) {\n return\n }\n\n this.optionsSelected[option[this.valueProp]] = value;\n this.selection = this.options.filter(o => this.optionsSelected[o[this.valueProp]]);\n this.checkAllValue = this.selection.length === this.options.length;\n this.onChange(this.selection);\n this.onTouched();\n\n this.updateChipsContainerClasses();\n this.updateValidation();\n this.change.detectChanges();\n this.itemCheck.emit(this.selection);\n this.changed = true;\n }\n\n shouldProcessMaxOptions(option: any, value: boolean) {\n if(this.maxOptions) {\n const isAlreadySelected = this.optionsSelected[option[this.valueProp]];\n\n if (value && this.selection.length >= this.maxOptions && !isAlreadySelected) {\n\n const checkbox = event!.target as HTMLInputElement;\n\n setTimeout(() => {\n checkbox.checked = false;\n this.change.detectChanges();\n }, 0);\n\n return true;\n }\n }\n return false;\n }\n\n selectAllOptions(selected: boolean) {\n this.optionsSelected = this.options\n .reduce((acc, curr) => {\n acc[curr[this.valueProp]] = selected\n return acc;\n }, {} as { [key: string]: boolean })\n }\n\n handleChipAction(option: any) {\n if (this.multiple) {\n this.optionsSelected[option[this.valueProp]] = false\n this.selection = this.selection.filter(selectedOption =>\n selectedOption[this.valueProp] !== option[this.valueProp])\n this.onChange(this.selection)\n this.optionRemoved.emit(option)\n } else {\n this.selectedOption = null;\n this.onChange([])\n }\n\n this.updateChipsContainerClasses()\n this.updateValidation();\n this.change.detectChanges();\n }\n\n display(option: any) {\n return this.displayFn && this.displayFn(option)\n }\n\n getMoreItems() {\n const sortedFilteredOptions = [...this.filteredOptions];\n\n this.sortSelectedFirst(sortedFilteredOptions, this.selection, this.valueProp)\n const nextPageItems = sortedFilteredOptions\n .slice(\n this.ITEMS_PER_PAGE * (this._pageNumber - 1),\n this.ITEMS_PER_PAGE * this._pageNumber\n );\n\n if (nextPageItems.length) {\n this.paginatedFilteredOptions = [...this.paginatedFilteredOptions, ...nextPageItems];\n this._pageNumber += 1\n }\n this.updateValidation();\n this.change.detectChanges()\n }\n\n sortSelectedFirst(items: Array<any>, selectedItems: Array<any>, prop: string) {\n items.sort((a, b) => {\n const aIsSelected = selectedItems.some(item => item[prop] === a[prop]);\n const bIsSelected = selectedItems.some(item => item[prop] === b[prop]);\n\n if (aIsSelected && !bIsSelected) {\n return -1;\n } else if (!aIsSelected && bIsSelected) {\n return 1;\n } else {\n return 0;\n }\n });\n }\n\n protected updateValidation() {\n this.checkAllValue = this.isAllOptionsSelected\n this.showChips = Boolean(this.selectedOptions.length) && this.closed && (\n !this.multiple || !this.checkAllValue || (this.checkAllValue && !Boolean(this.allOptionsSelectedText))\n );\n this.showAllSelectionBtn = this.multiple && Boolean(this.selection.length > 1) && this.chipsCollapsed;\n this.showPlaceholder = this.closed && (\n !this.selectedOptions.length || (this.checkAllValue && Boolean(this.allOptionsSelectedText) && this.multiple)\n );\n this.showExpandedSelectionActions = this.multiple && !this.chipsCollapsed;\n this.showSelectAllCheckbox = Boolean(this.paginatedFilteredOptions.length) && this.selectAll;\n }\n\n // Control Value Accessor\n\n writeValue(obj: any[] | any): void {\n this.selection = [];\n if (this.multiple && Array.isArray(obj)) {\n this.optionsSelected = {}\n obj.forEach(option => this.optionsSelected[option[this.valueProp]] = true)\n } else {\n this.selectedOption = obj;\n this.updateValidation();\n }\n\n if (this.multiple) {\n this.handleSelectionChange(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\n class=\"autocomplete-wrapper\"\n data-testid=\"autocomplete-wrapper\"\n [class.-closed]=\"closed\"\n [class.-opened]=\"!closed\"\n [class.-multiple]=\"multiple\"\n [class.-with-selection]=\"selection.length > 0 && !isAllOptionsSelected\"\n [class.-below]=\"position === 'below'\"\n [class.-above]=\"position === 'above'\"\n #wrapper\n (click)=\"handleAutocompleteClick()\"\n>\n <div class=\"autocomplete\" #autocomplete>\n <input\n class=\"search-field\"\n askAutofocus\n *ngIf=\"!closed; else selectionOrPlaceholder\"\n (click)=\"$event.stopPropagation()\"\n [formControl]=\"inputControl\"\n [placeholder]=\"placeholder\"\n />\n <ng-template #selectionOrPlaceholder>\n <ng-container *ngIf=\"showChips\">\n <div\n class=\"chip-list\"\n [class.-collapsed]=\"chipsCollapsed\"\n [ngClass]=\"chipsContainerClasses\"\n *ngIf=\"multiple; else singleSelection\"\n >\n <ask-chips\n [style.max-width]=\"chipsCollapsed ? '85%' : '95%'\"\n [showAction]=\"enableRemove\"\n *ngFor=\"let option of selectedOptions\"\n (action)=\"handleChipAction(option)\"\n [autoComplete]=\"true\"\n >\n {{ display(option) }}\n </ask-chips>\n <span\n class=\"expand\"\n data-testid=\"see-more\"\n *ngIf=\"showAllSelectionBtn\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n +{{ selection.length - 1 }}\n </span>\n </div>\n </ng-container>\n <span\n class=\"empty-placeholder\"\n data-testid=\"placeholder\"\n *ngIf=\"showPlaceholder\"\n >\n {{\n checkAllValue && allOptionsSelectedText\n ? allOptionsSelectedText\n : placeholder\n }}\n </span>\n </ng-template>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n *ngIf=\"chipsCollapsed\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n <div class=\"actions\" *ngIf=\"showExpandedSelectionActions\">\n <span\n class=\"see-more\"\n data-testid=\"see-less\"\n (click)=\"handleChipsListActionClick($event)\"\n >\n {{ \"SEE_LESS\" | translate }}\n </span>\n <span\n class=\"btn-expand material-icons\"\n data-testid=\"btn-expand\"\n [class.-disabled]=\"disabled\"\n >\n {{ closed ? \"expand_more\" : \"expand_less\" }}\n </span>\n </div>\n</div>\n\n<ng-template #overlayContent>\n <div #list class=\"menu-container\"\n [class.-multiple]=\"multiple\"\n [class.-below]=\"position === 'below'\"\n [class.-above]=\"position === 'above'\"\n >\n <ng-container *ngIf=\"!multiple; else multipleSelection\">\n <div class=\"list\" askScroll [askScrollThreshold]=\"50\" (scrollEnd)=\"getMoreItems()\">\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div\n class=\"option-item\"\n [class.-highlighted]=\"\n selectedOption && selectedOption[valueProp] === option[valueProp]\n \"\n (click)=\"handleOptionSelected(option)\"\n >\n <p class=\"text\">{{ display(option) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-container>\n <ng-template #multipleSelection>\n <div class=\"option-item\" *ngIf=\"showSelectAllCheckbox\">\n <ask-checkbox\n (valueChange)=\"handleSelectAll($event)\"\n [(ngModel)]=\"checkAllValue\"\n >{{selectAllMessage}}</ask-checkbox\n >\n </div>\n\n <ng-container *ngFor=\"let option of fixedOptionsItems\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n\n <div\n askScroll\n [askScrollThreshold]=\"50\"\n (scrollEnd)=\"getMoreItems()\"\n data-testid=\"options-form\"\n class=\"options-form\"\n [class.-select-all]=\"showSelectAllCheckbox\"\n >\n <ng-container *ngFor=\"let option of paginatedFilteredOptions\">\n <div class=\"option-item\">\n <ask-checkbox\n [value]=\"optionsSelected[option[valueProp]]\"\n (valueChange)=\"valueChange(option, $event)\"\n >\n <div class=\"checkbox-content\">\n <img\n data-testid=\"checkbox-item-icon\"\n class=\"icon\"\n *ngIf=\"iconPropReference\"\n [src]=\"option[iconPropReference]\"\n alt=\"\"\n />\n {{ display(option) }}\n </div>\n </ask-checkbox>\n </div>\n </ng-container>\n </div>\n </ng-template>\n <span class=\"empty\" *ngIf=\"!filteredOptions.length\">{{\n emptyMessage | translate\n }}</span>\n </div>\n</ng-template>\n\n<ng-template #singleSelection>\n <span data-testid=\"selected-option\" class=\"selected-option\" title=\"{{display(selectedOptions[0])}}\">{{display(selectedOptions[0])}}</span>\n</ng-template>\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\nimport moment from 'moment';\n\nexport type PeriodLabel =\n 'TODAY'\n | 'YESTERDAY'\n | 'LAST_7_DAYS'\n | 'LAST_30_DAYS'\n | 'THIS_MONTH'\n | 'LAST_QUARTER'\n | 'CUSTOM_PERIOD'\n | string;\n\nexport interface Day {\n timestamp: number;\n day: string;\n month: number;\n weekDay: number;\n formatted: string;\n isFuture: boolean;\n disabled: boolean;\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() disableFutureDate: boolean = false;\n @Input() disableTodayAndFuture: boolean = false;\n @Input() minDate?: Date;\n @Input() maxDate?: Date;\n\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: receivedDate.label || 'CUSTOM_PERIOD'\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 isFuture: this.isFutureDate(day.unix()),\n disabled: this.shouldDisableDate(day.unix()),\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) return this.handleRangeSelect(momentDate);\n this.handleSingleSelect(momentDate);\n }\n\n private handleRangeSelect(selectedDate: moment.Moment) {\n const innerDate = (this.innerDate as DayRange);\n\n if (!innerDate.from) {\n // First selection\n innerDate.from = this.getDayFromMoment(selectedDate);\n } else if (!innerDate.to) {\n // Second selection\n const actualFrom = moment.unix(innerDate.from.timestamp);\n\n if (selectedDate.isBefore(actualFrom, 'day')) {\n // Selected date is past the previous selected date\n innerDate.to = innerDate.from;\n innerDate.from = this.getDayFromMoment(selectedDate);\n } else {\n // Selected date is future of the previous selected date\n innerDate.to = this.getDayFromMoment(selectedDate);\n }\n }\n else {\n // Selection when both from and to are already selected\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 = '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 else newRange.to = formatTo(moment.unix(range.from.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 public isFutureDate(timestamp: number) {\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isAfter(now);\n }\n\n public isTodayDate(timestamp: number) {\n const date = moment.unix(timestamp);\n const now = moment();\n\n return date.isSame(now, 'day');\n }\n\n private isBeforeMin(timestamp: number): boolean {\n if (!this.minDate) return false;\n\n return timestamp < this.minDate.getTime() / 1000;\n }\n\n private isPastMax(timestamp: number): boolean {\n if (!this.maxDate) return false;\n\n return timestamp > this.maxDate.getTime() / 1000;\n }\n\n public shouldDisableDate(timestamp: number): boolean {\n if (this.minDate && this.isBeforeMin(timestamp)) {\n return true;\n }\n\n if (this.maxDate && this.isPastMax(timestamp)) {\n return true;\n }\n\n if (this.disableTodayAndFuture) {\n return this.isFutureDate(timestamp) || this.isTodayDate(timestamp);\n }\n\n if (this.disableFutureDate) {\n return this.isFutureDate(timestamp);\n }\n\n return false;\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\n type=\"button\"\n class=\"selector-button\"\n (click)=\"incrementMonth(1)\"\n >\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 <button\n *ngFor=\"let day of days\"\n (click)=\"selectDate(day.timestamp)\"\n [disabled]=\"day.disabled\"\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 </button>\n </div>\n </main>\n</div>\n","import {Component, EventEmitter, forwardRef, Input, 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\nexport interface Period {\n label: PeriodLabel;\n getRange: () => DateRange;\n isCustomRange?: boolean;\n}\n\nconst VALUE_ACCESSOR: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => DatePickerComponent),\n}\n\nexport const DEFAULT_PERIODS: Array<Period> = [\n { label: 'TODAY', getRange: () => ({ from: formatFrom(moment()), to: formatTo(moment()) }) },\n { label: 'YESTERDAY', getRange: () => ({ from: formatFrom(moment().subtract(1, 'day')), to: formatTo(moment().subtract(1, 'day')) }) },\n { label: 'LAST_7_DAYS', getRange: () => ({ from: formatFrom(moment().subtract(1, 'week')), to: formatTo(moment()) }) },\n { label: 'LAST_30_DAYS', getRange: () => ({ from: formatFrom(moment().subtract(30, 'days')), to: formatTo(moment()) }) },\n { label: 'THIS_MONTH', getRange: () => ({ from: formatFrom(moment().startOf('month')), to: formatTo(moment().endOf('day')) }) },\n { label: 'LAST_QUARTER', getRange: () => ({ from: formatFrom(moment().subtract(3, 'months')), to: formatTo(moment().endOf('day')) }) },\n { label: 'CUSTOM_PERIOD', getRange: () => ({}), isCustomRange: true },\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 ControlValueAccessor {\n\n private _periods: Array<Period> = DEFAULT_PERIODS;\n\n @Input() set periods(newPeriods: Array<Period>) {\n if (!newPeriods || newPeriods.length === 0) {\n console.error('Periods must be an array with at least one valid period');\n return;\n }\n\n this._periods = newPeriods;\n }\n\n get periods() {\n return this._periods;\n }\n\n @Input() date: DatePickerValue = moment().format();\n @Input() isRange: boolean = false;\n @Input() disableFutureDate: boolean = false;\n @Input() disableTodayAndFuture: boolean = false;\n @Input() periodsFilter: PeriodLabel[] = [];\n @Input() applyClickValidatorFn?: (date: DatePickerValue) => boolean;\n @Input() minDate?: Date;\n @Input() maxDate?: Date;\n\n @Output() dateChange = new EventEmitter<DatePickerValue>();\n @Output() close = new EventEmitter();\n\n selectedPeriod?: Period;\n isCustomRange = false;\n\n get filteredPeriods() {\n if (!this.periodsFilter?.length) {\n return this.periods;\n }\n\n return this.periods.filter(p => this.periodsFilter.includes(p.label));\n }\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 selectPeriod(period: Period) {\n this.selectedPeriod = period;\n\n this.date = {\n ...(this.date as DateRange),\n ...period.getRange()\n };\n this.date.label = period.label;\n this.isCustomRange = period.isCustomRange || false;\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 protected handleApplyClick() {\n if (this.applyClickValidatorFn && !this.applyClickValidatorFn(this.date)) return;\n\n this.emitValue();\n }\n\n emitValue() {\n if (this.isCustomRange && !(this.date as DateRange).to) {\n (this.date as DateRange).to = (this.date as DateRange).from;\n }\n\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 public getPeriodOrDefault(periodName: PeriodLabel, defaultPeriodName: 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 const period = this.periods.find(p => p.label === (this.date as DateRange)?.label);\n\n if (!period) {\n return;\n }\n\n this.selectedPeriod = period;\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 !== '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: '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 filteredPeriods\"\n type=\"button\"\n class=\"period\"\n [ngClass]=\"{ 'selected': period.label === selectedPeriod?.label }\"\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 [disableFutureDate]=\"disableFutureDate\"\n [disableTodayAndFuture]=\"disableTodayAndFuture\"\n [minDate]=\"minDate\"\n [maxDate]=\"maxDate\"\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)=\"handleApplyClick()\"\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 @Input() radius = 5;\n @Input() customTheme: Record<string, any> = {}\n @Input() appearance: 'line' | 'circle' = 'line';\n public barsCount = 0;\n protected baseTheme = {\n 'border-radius': '',\n height: '100px',\n margin: 0,\n display: 'block',\n }\n\n constructor(private elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n const height = this.elementRef.nativeElement.clientHeight;\n this.barsCount = Math.round(height / this.barsHeight) || 1;\n this.baseTheme = {\n ...this.baseTheme,\n ...(this.appearance !== 'circle' && { 'border-radius': '5px' }),\n ...this.customTheme,\n }\n }\n}\n","<ngx-skeleton-loader\n [count]=\"barsCount\"\n data-testid=\"skeleton-loader\"\n class=\"skeleton-component\"\n [appearance]=\"appearance\"\n animation=\"progress\"\n [theme]=\"baseTheme\"\n></ngx-skeleton-loader>\n","import {InjectionToken} from \"@angular/core\";\n\nexport type ToastType = 'success' | 'warning' | 'danger' | 'info';\n\nexport interface ToastData {\n type: ToastType;\n message: string;\n config?: ToastConfig;\n text?: string;\n}\n\nexport interface ToastConfig {\n timeout?: number;\n width?: number;\n}\n\nexport const ASK_TOAST_CONFIG = new InjectionToken<ToastData>('Default toast options');\n","import {OverlayRef} from \"@angular/cdk/overlay\";\n\nexport class ToastRef {\n constructor(readonly overlay: OverlayRef) {\n }\n\n close() {\n this.overlay.dispose();\n }\n\n getPosition(): DOMRect {\n return this.overlay.overlayElement.getBoundingClientRect();\n }\n}\n","import {ChangeDetectionStrategy, Component, HostBinding, Inject, Input, OnDestroy, OnInit} from '@angular/core';\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from '../../services/toast/toast.config';\nimport {ToastRef} from \"../../services/toast/toast-ref\";\n\n\n@Component({\n selector: 'ask-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToastComponent implements OnInit, OnDestroy {\n message = '';\n text = '';\n icon = 'check_small';\n timeoutRef!: number;\n config: ToastConfig = {\n timeout: 5000,\n width: 220\n }\n\n @HostBinding('style.background-color') color = 'var(--success-green)';\n @HostBinding('style.color') fontColor = 'var(--white)';\n @HostBinding('class.closing') isClosing = false;\n @HostBinding('style.width') width = '220px';\n\n private readonly TYPES: { [key in ToastType]: { color: string; icon: string; fontColor: string; } } = {\n success: { color: 'var(--success-green)', icon: 'check_small', fontColor: 'var(--white)' },\n warning: { color: 'var(--color-background-warning-contrast-default)', icon: 'warning', fontColor: 'var(--color-texticon-black-default)' },\n danger: { color: 'var(--error-red)', icon: 'error', fontColor: 'var(--white)' },\n info: { color: 'var(--facebook-blue)', icon: 'info', fontColor: 'var(--white)' },\n }\n\n constructor(\n @Inject(ASK_TOAST_CONFIG) readonly data: ToastData,\n private ref: ToastRef\n ) {\n this.message = data.message;\n this.text = data.text || '';\n this.type = data.type;\n this.config = {\n ...this.config,\n ...data.config\n }\n if (this.config?.width) {\n this.width = `${this.config.width}px`;\n }\n }\n\n @Input() set type(type: 'success' | 'warning' | 'danger' | 'info' | ToastType) {\n this.icon = this.TYPES[type].icon;\n this.fontColor = this.TYPES[type].fontColor;\n this.color = this.TYPES[type].color;\n }\n\n ngOnInit() {\n if (this.config?.timeout) {\n this.timeoutRef = setTimeout(() => this.close(), this.config.timeout) as unknown as number;\n }\n }\n\n ngOnDestroy() {\n clearTimeout(this.timeoutRef);\n }\n\n close() {\n this.isClosing = true;\n\n setTimeout(() => this.ref.close(), 250);\n }\n}\n","<span class=\"material-icons icon\">\n {{ icon }}\n</span>\n\n<div class=\"content\">\n <p class=\"message\">\n {{ message }}\n </p>\n <p class=\"text\" *ngIf=\"text\">\n {{ text }}\n </p>\n</div>\n\n\n<button type=\"button\" class=\"close-icon\" (click)=\"close()\">\n <span class=\"material-icons icon\" [style.color]=\"fontColor\">close</span>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { SpinnerSize } from './spinner-size.type';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html',\n styleUrls: ['./spinner.component.scss'],\n})\nexport class SpinnerComponent {\n sizeClass: { [key: string]: boolean } = {};\n\n @Input() set size(newSize: SpinnerSize) {\n this.sizeClass = { [`-${newSize}`]: true };\n }\n @Input() color: string = '';\n}\n","<span\n class=\"spin-circle\"\n [ngClass]=\"sizeClass\"\n [ngStyle]=\"{\n 'border-color': color\n }\"\n></span>","import {Directive, ElementRef, Inject, Input, OnChanges, OnDestroy, SimpleChanges} from '@angular/core';\nimport {DOCUMENT} from \"@angular/common\";\n\n@Directive({\n selector: '[askBadge]'\n})\nexport class BadgeDirective implements OnChanges, OnDestroy {\n\n @Input()\n askBadge: number | null = null;\n\n @Input()\n badgePosition: 'top-right' | 'top-left' | 'bottom-left' | 'bottom-right' = 'top-right';\n\n @Input()\n badgeCustomClasses?: string;\n\n @Input()\n badgeVariant: 'secondary' | 'primary' = 'primary';\n\n @Input()\n badgeSize: 'regular' | 'large' | 'small' = 'regular';\n\n badgeElement: HTMLElement | null = null;\n\n constructor(private elRef: ElementRef, @Inject(DOCUMENT) private document: Document) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if ('askBadge' in changes) {\n const value = `${changes['askBadge'].currentValue}`.trim();\n if (value?.length > 0) {\n this.updateBadgeText(value)\n }\n }\n }\n\n ngOnDestroy() {\n if (this.badgeElement) {\n this.badgeElement.remove();\n }\n }\n\n private updateBadgeText(value: string) {\n if (!this.badgeElement && value !== '0') {\n this.badgeElement = this.createBadge(value);\n } else if (this.badgeElement && value !== '0') {\n this.badgeElement.textContent = value;\n } else if (this.badgeElement) {\n this.badgeElement.classList.add('scale-out-center');\n setTimeout(() => {\n this.badgeElement?.remove();\n this.badgeElement = null;\n }, 300)\n }\n }\n\n private createBadge(value: string): HTMLElement {\n const badgeElement = this.document.createElement(\"span\");\n this.addClasses(badgeElement);\n badgeElement.textContent = value;\n this.elRef.nativeElement.classList.add(\"ask-badge\");\n this.elRef.nativeElement.appendChild(badgeElement);\n return badgeElement;\n }\n\n private addClasses(badgeElement: HTMLElement) {\n const [vPos, hPos] = this.badgePosition.split(\"-\");\n badgeElement.classList.add(\"badge\", `-${vPos}`, `-${hPos}`, 'scale-in-center');\n if (this.badgeCustomClasses) {\n const customClasses = this.badgeCustomClasses.split(\" \");\n badgeElement.classList.add(...customClasses);\n }\n badgeElement.classList.add(`-${this.badgeVariant}`);\n badgeElement.classList.add(`-${this.badgeSize}`);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ask-icon',\n standalone: true,\n imports: [],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class IconComponent {\n @Input({ required: true })\n name = '';\n\n protected get path() {\n return `../assets/icons/${this.name}.svg`;\n }\n}\n","<img data-testid='img' [src]=\"path\" [alt]=\"name\" />\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { IconComponent } from '../../components/icon/icon.component';\n\n@Directive()\nexport abstract class AskBaseButtonDirective implements OnChanges {\n @Input()\n color: ButtonColor = 'primary';\n\n @Input()\n size: ButtonSize = 'default';\n\n @Input()\n icon = '';\n\n @HostBinding('class')\n private className = ''\n\n private iconComponentRef?: ComponentRef<IconComponent>\n\n constructor(\n className: string,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private renderer: Renderer2\n ) {\n this.className = className;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color']) {\n this.updateColor();\n }\n\n if (changes['size']) {\n this.updateSize();\n }\n\n if (changes['icon']) {\n this.updateIcon();\n }\n }\n\n private updateColor() {\n const element: HTMLElement = this.el.nativeElement;\n\n element.classList.remove('-primary', '-secondary');\n if (this.color) {\n element.classList.add('-' + this.color);\n }\n }\n\n private updateSize() {\n const element: HTMLElement = this.el.nativeElement;\n\n element.classList.remove('-small', '-xsmall');\n if (this.size) {\n element.classList.add('-' + this.size);\n }\n }\n\n private updateIcon() {\n // Remove existing icon component if it exists\n if (this.iconComponentRef) {\n this.iconComponentRef.destroy();\n this.iconComponentRef = undefined;\n }\n\n if (this.icon) {\n this.iconComponentRef =\n this.viewContainerRef.createComponent(IconComponent);\n this.iconComponentRef.instance.name = this.icon;\n this.renderer.insertBefore(\n this.el.nativeElement,\n this.iconComponentRef.location.nativeElement,\n this.el.nativeElement.firstChild\n );\n }\n }\n}\n\ntype ButtonSize =\n | 'x-large'\n | 'large'\n | 'default'\n | 'medium'\n | 'small'\n | 'mini'\n | 'x-mini';\nexport type ButtonAppearance = 'outline' | 'text' | 'default';\nexport type ButtonColor = 'primary' | 'secondary' | 'danger';\n","import { Directive, ElementRef, Renderer2, ViewContainerRef} from '@angular/core';\nimport {AskBaseButtonDirective} from \"./ask-base-button.directive\";\n\n@Directive({\n selector: 'button[askTextButton]'\n})\nexport class AskTextButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-text-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { AskBaseButtonDirective } from './ask-base-button.directive';\n\n@Directive({\n selector: 'button[askButton]',\n})\nexport class AskButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n Directive,\n ElementRef,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { AskBaseButtonDirective } from './ask-base-button.directive';\n\n@Directive({\n selector: 'button[askStrokedButton]',\n})\nexport class AskStrokedButtonDirective extends AskBaseButtonDirective {\n constructor(\n viewContainerRef: ViewContainerRef,\n el: ElementRef,\n renderer: Renderer2\n ) {\n super('ask-stroked-button', viewContainerRef, el, renderer);\n }\n}\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { SpinnerComponent } from './spinner.component';\nimport { SpinnerSize } from './spinner-size.type';\n\n@Directive({\n selector: '[askSpinner]',\n})\nexport class SpinnerDirective {\n private shouldShow = false;\n spinner: ComponentRef<SpinnerComponent> | undefined;\n\n @Input('askSpinner')\n set nbSpinner(val: boolean) {\n if (val) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n @Input() spinnerSize: SpinnerSize = 'small'\n @Input() spinnerBlur = true\n @Input() spinnerColor: string = ''\n\n @HostBinding('class.nb-spinner-container') isSpinnerExist = false;\n\n constructor(\n private directiveView: ViewContainerRef,\n private renderer: Renderer2,\n private directiveElement: ElementRef\n ) {}\n\n ngOnInit() {\n if (this.shouldShow) {\n this.show();\n }\n }\n\n hide() {\n if (this.isSpinnerExist) {\n this.directiveView.remove();\n this.isSpinnerExist = false;\n }\n }\n\n show() {\n if (!this.isSpinnerExist) {\n this.spinner = this.directiveView.createComponent(SpinnerComponent);\n this.spinner.instance.size = this.spinnerSize\n this.spinner.instance.color = this.spinnerColor\n this.spinner.changeDetectorRef.detectChanges();\n if (this.spinnerBlur) {\n this.directiveElement.nativeElement.classList.add('-blur')\n }\n this.renderer.setStyle(this.directiveElement.nativeElement, 'position', 'relative');\n this.renderer.appendChild(\n this.directiveElement.nativeElement,\n this.spinner.location.nativeElement\n );\n this.isSpinnerExist = true;\n }\n }\n}\n","import {\n ComponentRef,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n OnInit,\n Output,\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\";\nimport {fromEvent, Observable, Subscription} from \"rxjs\";\n\n@Directive({\n selector: '[askDropdown]'\n})\nexport class AskDropdownDirective implements OnInit {\n\n @Input() askDropdown?: TemplateRef<any>;\n @Input() dropdownName = '';\n @Input() positions?: Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n @Input() dropdownDisabled = false;\n @Input() dropdownOpenOnHover: boolean = false;\n @Input() mouseThreshold = 300;\n @Input() openStrategy: 'click' | 'hover' = 'click' \n @Output() askDropdownOnClose = new EventEmitter();\n private mouseLocation: {mouseX: number; mouseY: number} = {mouseX: 0, mouseY: 0};\n private _isRendered: boolean = false;\n private overlayConfig: OverlayConfig = {};\n private overlayRef!: OverlayRef;\n private containerRef!: ComponentRef<DropdownContainerComponent> | undefined;\n\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\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.reposition();\n\n this.overlayConfig = {\n hasBackdrop: this.dropdownOpenOnHover ? false : 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 if (this.positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof this.positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[this.positions]);\n }\n\n else if (Array.isArray(this.positions)) {\n chosenPositions = [...this.positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\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 ngOnDestroy(){\n this.close();\n }\n\n @HostListener('mouseenter')\n public showOnHoverIn() {\n if (this.dropdownOpenOnHover) {\n\n this.show();\n this.mouseLocation = this.onMouseMove(event)\n fromEvent(document.body, 'mousemove')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((e: any) => {\n\n const mouseYCloseOn = Math.abs(this.mouseLocation.mouseY - e.pageY) <= this.mouseThreshold;\n const mouseXCloseOn = Math.abs(this.mouseLocation.mouseX - e.pageX) <= this.mouseThreshold;\n if (!(mouseYCloseOn && mouseXCloseOn)){\n this.close();\n\n }\n });\n }\n }\n\n @HostListener('mouseleave')\n public hideOnHoverOut() {\n if (this.openStrategy == 'hover') {\n this.close();\n }\n }\n\n @HostListener('click')\n public show() {\n if (!this.askDropdown || this.isRendered || this.dropdownDisabled ) {\n this.close();\n return;\n }\n\n this.containerRef = this.overlayRef.attach(new ComponentPortal(DropdownContainerComponent));\n this.containerRef.instance.content = this.askDropdown;\n if (this.dropdownOpenOnHover) {\n fromEvent(this.containerRef.location.nativeElement, 'mouseout')\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((event: any) => {\n if (event.relatedTarget?.classList.contains('cdk-overlay-backdrop')) {\n this.close();\n }\n });\n }\n this._isRendered = true;\n }\n public onMouseMove(event: any): {mouseX: number; mouseY: number} {\n const location = {\n mouseX: event.clientX,\n mouseY: event.pageY\n }\n\n return location;\n }\n public close() {\n this.containerRef = undefined;\n this.overlayRef.detach();\n this._isRendered = false;\n this.askDropdownOnClose.emit();\n }\n\n public get isRendered() {\n return this._isRendered;\n }\n\n}\n","export function areObjectsEqual(\n obj1: Record<string, any>,\n obj2: Record<string, any>\n) {\n return Object.keys(obj1).every((key) => obj1[key] === obj2[key]);\n}\n","export const URL_REGEX = /(https?:\\/\\/|www\\.)[\\w-\\.]+\\.[\\w-\\.]+(\\/([\\S]+)?)?/gi\n","import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';\nimport Quill, { BoundsStatic, Delta, DeltaStatic, RangeStatic, SelectionChangeHandler, Sources, TextChangeHandler } from 'quill';\nimport { BehaviorSubject, Subject, Subscription, filter, fromEvent, map } from 'rxjs';\nimport {\n RichTextFunctions,\n RichtextFormats,\n Tool,\n ToolKeys,\n ToolsState,\n} from '../interfaces/richtext-toolbox.interface';\nimport { URL_REGEX } from '../constants/url-regex.constant';\n\nexport class RichtextWrapper implements RichTextFunctions {\n private quill!: Quill;\n\n private maxLengthSubscription?: Subscription;\n private templateReplacerSubscription?: Subscription;\n\n private stateSub = new BehaviorSubject<ToolsState>({\n hasSelection: false,\n hasFocus: false,\n formats: {\n italic: false,\n bold: false,\n underline: false,\n strike: false,\n link: '',\n list_bulleted: false,\n list_numbered: false,\n justify_left: false,\n justify_center: false,\n justify_right: false,\n },\n disabledTools: []\n });\n private esc$ = new Subject<boolean>();\n private enter$ = new Subject<boolean>();\n private maxLength = -1;\n private breakOnEnter = false;\n private allowImages = false;\n private quillFormats = [\n 'background',\n 'bold',\n 'color',\n 'font',\n 'code',\n 'italic',\n 'link',\n 'size',\n 'strike',\n 'script',\n 'underline',\n 'blockquote',\n 'header',\n 'indent',\n 'list',\n 'align',\n 'direction',\n 'code-block',\n 'formula',\n 'image',\n 'htmlPanel'\n // 'video'\n ]\n\n private textChangeHandler: TextChangeHandler = () => {\n this.update();\n };\n\n private selectionChangeHandler: SelectionChangeHandler = (\n value: RangeStatic,\n oldRange: RangeStatic,\n source: Sources\n ) => {\n this.update();\n };\n\n private bindings = {\n bold: {\n handler: () => {\n this.setBold();\n return false;\n },\n },\n italic: {\n handler: () => {\n this.setItalic();\n return false;\n },\n },\n underline: {\n handler: () => {\n this.setUnderline();\n return false;\n },\n },\n escape:{\n key: 'escape',\n handler: () => {\n this.esc$.next(true);\n return false;\n }\n },\n enter: {\n key: 'enter',\n handler: () => {\n this.enter$.next(true);\n return this.breakOnEnter;\n }\n }\n\n };\n\n public get state(){\n return this.stateSub.value\n }\n \n public state$ = this.stateSub.asObservable();\n \n public get listenTextChanges$(){\n return fromEvent(this.quill, 'text-change')\n .pipe(map(() => this.quill.root.innerHTML)); \n }\n\n public get listenOnTouched$() {\n return fromEvent(this.quill, 'selection-change').pipe(\n filter(() => Boolean(this.quill.getSelection(false))),\n map(() => null)\n );\n }\n\n public get listenEscape$(){\n return this.esc$.asObservable()\n }\n\n public get listenEnter$(){\n return this.enter$.asObservable();\n }\n\n constructor(\n private ngZone: NgZone,\n private cd: ChangeDetectorRef,\n private elementRef: ElementRef<HTMLElement>,\n ) {\n const editorId = `editor-${new Date().getTime()}`;\n this.elementRef.nativeElement.setAttribute('id', editorId);\n this.quill = new QuillProxy.Quill(`#${editorId}`, {\n placeholder: '',\n modules: {\n clipboard: {\n matchers: [\n [Node.TEXT_NODE, this.urlMatcher.bind(this)],\n ['IMG', this.imageMatcher.bind(this)],\n [Node.ELEMENT_NODE, this.htmlPanelMatcher.bind(this)]\n ],\n },\n keyboard: { bindings: this.bindings },\n },\n formats: this.quillFormats\n });\n this.listenEditorChanges();\n }\n\n public setItalic() {\n if(this.isToolDisabled('italic')) return;\n this.quill.format('italic', !this.state.formats.italic);\n this.update();\n }\n\n public setBold() {\n if(this.isToolDisabled('bold')) return\n this.quill.format('bold', !this.state.formats.bold);\n this.update();\n }\n\n public setUnderline() {\n if(this.isToolDisabled('underline')) return;\n this.quill.format('underline', !this.state.formats.underline);\n this.update();\n }\n\n public setStrike() {\n if(this.isToolDisabled('strike')) return;\n this.quill.format('strike', !this.state.formats.strike);\n this.update();\n }\n\n public setListNumbered() {\n if(this.isToolDisabled('list_numbered')) return;\n if (this.state.formats.list_numbered)\n this.quill.format('list', null);\n else \n this.quill.format('list', 'ordered');\n this.update();\n }\n\n public setListBulleted() {\n if(this.isToolDisabled('list_bulleted')) return;\n if (this.state.formats.list_bulleted)\n this.quill.format('list', null);\n else \n this.quill.format('list', 'bulleted');\n this.update();\n }\n\n public setLink(link: string) {\n if(this.isToolDisabled('link')) return;\n\n const range = this.quill.getSelection(true);\n\n if (range && !range.length) {\n const [textBloat, offset] = this.quill.getLeaf(range!.index);\n\n const start = range!.index - offset;\n const length = textBloat.length();\n\n this.quill.formatText(start, length, 'link', link);\n } else {\n this.quill.format('link', link);\n }\n\n this.update();\n }\n\n public setJustifyLeft() {\n if(this.isToolDisabled('justify_left')) return;\n this.quill.format('align', null);\n this.update();\n }\n\n public setJustifyCenter() {\n if(this.isToolDisabled('justify_center')) return;\n this.quill.format('align', 'center');\n this.update();\n }\n\n public setJustifyRight() {\n if(this.isToolDisabled('justify_right')) return;\n this.quill.format('align', 'right');\n this.update();\n }\n\n public setRemove() {\n const selection = this.quill.getSelection();\n if (selection) this.quill.removeFormat(selection!.index, selection!.length);\n this.update();\n }\n\n public setPlaceholder(placeholder: string){\n this.quill.root.dataset['placeholder'] = placeholder;\n }\n\n public setText(text: string){\n this.quill.clipboard.dangerouslyPasteHTML(text, 'silent');\n }\n\n public getTextWithoutHtmlTags(){\n return this.quill.getText();\n }\n\n public insertText(index: number, text: string, emitEvent: boolean){\n const source = emitEvent ? 'user' : 'silent';\n this.quill.insertText(index, text, source)\n }\n\n public setShortcutTemplate(key: string, template: string) {\n this.templateReplacerSubscription?.unsubscribe();\n\n this.templateReplacerSubscription = fromEvent(\n this.quill,\n 'text-change'\n ).subscribe(([_delta, _oldDelta, _source]) => {\n const delta = _delta as unknown as DeltaStatic;\n const source = _source as Sources;\n\n delta.ops?.forEach((op) => {\n if (op.insert === key && source === 'user') {\n const position = delta.ops![0].retain || 0;\n delta.ops!.pop();\n delta.ops!.push({ delete: key.length }, { insert: template });\n\n this.quill.updateContents(delta, 'silent');\n\n setTimeout(() => {\n this.quill.setSelection(position + 1 + template.length, -1);\n });\n }\n });\n });\n }\n\n public setMaxLength(length: number){\n this.maxLength = length;\n\n this.maxLengthSubscription?.unsubscribe();\n if(this.maxLength > 0)\n this.maxLengthSubscription = \n fromEvent(this.quill, 'text-change')\n .pipe(filter(() => this.quill.getLength() > this.maxLength))\n .subscribe(() => {\n this.quill.deleteText(this.maxLength -1, this.quill.getLength());\n })\n }\n\n public setDisabledTools(tools: ToolKeys){\n if(JSON.stringify(tools) !== JSON.stringify(this.stateSub.value.disabledTools))\n this.stateSub.next({...this.stateSub.value, disabledTools: tools, })\n }\n\n public setEditorClass(className: string){\n if(!className) return;\n this.quill.root.classList.add(className);\n }\n\n public getEditorElement(){\n return this.quill.root;\n }\n\n public getTextLength(){\n return this.quill.getLength();\n }\n\n public disable(){\n this.quill.disable();\n }\n\n public enable(){\n this.quill.enable();\n }\n\n public focus(){\n this.quill.focus();\n }\n\n public setBreakOnEnter(breakOnEnter: boolean){\n this.breakOnEnter = breakOnEnter;\n }\n\n public setAllowImages(allowImages: boolean){\n this.allowImages = allowImages;\n }\n\n public getCurrentCursorPosition(){\n return this.quill.getSelection();\n }\n\n public destroy() {\n this.quill.off('selection-change', this.selectionChangeHandler);\n this.quill.off('text-change', this.textChangeHandler);\n this.esc$.unsubscribe();\n this.enter$.unsubscribe();\n this.stateSub.unsubscribe();\n this.maxLengthSubscription?.unsubscribe();\n this.templateReplacerSubscription?.unsubscribe();\n }\n\n private isToolDisabled(tool: Tool){\n return this.stateSub.value.disabledTools.includes(tool)\n }\n\n private urlMatcher(node: any, delta: any) {\n if (typeof node.data !== 'string') return;\n const matches = node.data.match(URL_REGEX);\n\n if (matches && matches.length > 0) {\n let text = '';\n const selection = this.quill.getSelection(true);\n if (selection.length)\n text = this.quill.getText(selection!.index, selection!.length);\n\n const ops = [];\n let str = node.data;\n matches.forEach(function (match: any) {\n const split = str.split(match);\n const beforeLink = split.shift();\n ops.push({ insert: beforeLink });\n ops.push({ insert: text || match, attributes: { link: match } });\n str = split.join(match);\n });\n ops.push({ insert: str });\n delta.ops = ops;\n }\n\n return delta;\n }\n\n private imageMatcher(node: any, delta: any){\n if(this.allowImages) return delta;\n\n const Delta = Quill.import('delta')\n return new Delta().insert('')\n }\n\n private htmlPanelMatcher(node: HTMLElement, delta: Delta) {\n if (node.id === 'htmlPanel') {\n delta.ops = [{ insert: {htmlPanel: node.innerHTML}}];\n }\n return delta;\n }\n\n\n private listenEditorChanges() {\n this.quill.on('selection-change', this.selectionChangeHandler);\n this.quill.on('text-change', this.textChangeHandler);\n }\n\n\n private update() {\n let bounds: BoundsStatic | undefined;\n let formatsArr;\n\n const range = this.quill.getSelection(false);\n if (range){ \n bounds = this.quill.getBounds(range.index, range.length);\n formatsArr = this.quill.getFormat(range) as any;\n }\n\n const formats: RichtextFormats = {\n italic: formatsArr?.italic || false,\n bold: formatsArr?.bold || false,\n underline: formatsArr?.underline || false,\n strike: formatsArr?.strike || false,\n link: formatsArr?.link || '',\n list_bulleted: formatsArr?.list === 'bullet',\n list_numbered: formatsArr?.list === 'ordered',\n justify_left: formatsArr?.align === 'left',\n justify_center: formatsArr?.align === 'center',\n justify_right: formatsArr?.align === 'right',\n };\n\n const hasSelection = !!range?.length;\n const hasFocus = !!range;\n\n const newState: ToolsState = { \n ...this.stateSub.value, \n hasSelection, \n formats, \n bounds, \n hasFocus \n };\n\n this.ngZone.run(() => {\n this.stateSub.next(newState);\n this.cd.markForCheck();\n })\n }\n}\n\n//to work around testing problems \nexport const QuillProxy ={\n Quill\n}\n\n//to work around testing problems \nexport const RichtextWrapperProxy = {\n RichtextWrapper\n}","import { RichTextFunctionsKeys, Tool, ToolKeys } from \"../interfaces/richtext-toolbox.interface\";\n\nexport const TOOL_FUNCTION_MAP: Record<Tool, RichTextFunctionsKeys> = {\n bold: 'setBold',\n italic: 'setItalic',\n underline: 'setUnderline',\n strike: 'setStrike',\n list_numbered: 'setListNumbered',\n list_bulleted: 'setListBulleted',\n link: 'setLink',\n justify_left: 'setJustifyLeft',\n justify_center: 'setJustifyCenter',\n justify_right: 'setJustifyRight',\n clear: 'setRemove',\n};\n\nexport const TOOL_ICON_MAP: Record<Tool, string> = {\n bold: 'format_bold',\n italic: 'format_italic',\n underline: 'format_underlined',\n strike: 'format_strikethrough',\n list_numbered: 'format_list_numbered',\n list_bulleted: 'format_list_bulleted',\n link: 'link',\n justify_left: 'format_align_left',\n justify_center: 'format_align_center',\n justify_right: 'format_align_right',\n clear: 'format_clear',\n};\n\nexport const ALL_TOOLS: ToolKeys = [\n 'bold',\n 'italic',\n 'underline',\n 'strike',\n 'list_numbered',\n 'list_bulleted',\n 'link',\n 'justify_left',\n 'justify_center',\n 'justify_right',\n 'clear',\n]\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RichtextUrlPromptStateService {\n public urlText: string = '';\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { URL_REGEX } from '../../constants/url-regex.constant';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RichtextUrlPromptStateService } from './richtext-url-prompt-state.service';\n\n@Component({\n selector: 'ask-richtext-url-prompt',\n templateUrl: './richtext-url-prompt.component.html',\n styleUrls: ['./richtext-url-prompt.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RichtextUrlPromptComponent {\n @ViewChild('input') inputEl?: ElementRef<HTMLInputElement>;\n\n isPreset = false;\n\n @Input({ alias: 'url' }) set _url(url: string) {\n if(document.activeElement === this.inputEl?.nativeElement) return;\n\n if(url) this.isPreset = true;\n\n url = url || this.state.urlText;\n this.formControl.setValue(url, {emitEvent: false});\n }\n @Output() url = new EventEmitter<string>();\n formControl = new FormControl('', {\n nonNullable: true,\n validators: [Validators.required, Validators.pattern(URL_REGEX)],\n });\n\n get isValid() {\n if(this.isPreset) return true\n \n return this.formControl.valid && this.formControl.dirty\n }\n\n constructor(\n private destroyRef: DestroyRef,\n private state: RichtextUrlPromptStateService,\n ) {\n this.formControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n state.urlText = value;\n this.isPreset = false;\n });\n }\n\n onSubmit(event: Event) {\n event.preventDefault();\n if (!this.isValid) return;\n\n if(this.isPreset) this.formControl.setValue('', {emitEvent: false});\n\n this.state.urlText = '';\n this.url.emit(this.formControl.value);\n }\n\n ngAfterViewInit() {\n this.inputEl!.nativeElement.focus();\n }\n}\n","<input\n #input\n data-testid=\"input\"\n placeholder=\"https://asksuite.com\"\n class=\"input\"\n [formControl]=\"formControl\"\n (keydown.enter)=\"onSubmit($event)\"\n/>\n<button\n data-testid=\"button\"\n [disabled]=\"!isValid\"\n class=\"save\"\n type=\"button\"\n (click)=\"onSubmit($event)\"\n>\n {{ (isPreset ? \"CLEAR\" : \"SAVE\") | translate }}\n</button>\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n} from '@angular/core';\nimport {\n ToolbarItem,\n} from '../../interfaces/richtext-toolbox.interface';\nimport { AskDropdownDirective } from '../../directives';\n\n@Component({\n selector: 'ask-richtext-toolbox',\n templateUrl: './richtext-toolbox.component.html',\n styleUrls: ['./richtext-toolbox.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RichtextToolboxComponent {\n @ViewChildren(AskDropdownDirective)\n dropdowns?: QueryList<AskDropdownDirective>;\n\n \n @Output() close = new EventEmitter<void>();\n @Output() tool = new EventEmitter<ToolbarItem>();\n\n get toolbarItems(){\n return this._toolbarItems;\n }\n @Input() set toolbarItems(value: ToolbarItem[]) {\n this._toolbarItems = value;\n this.urlIdx = value.findIndex((item) => item.tool === 'link');\n }\n @Input() type: 'topbar' | 'bubble' = 'topbar';\n @Input() @HostBinding('class') class: 'top-toolbox' | 'bubble-toolbox' | string = '';\n \n private _toolbarItems: ToolbarItem[] = [];\n private urlIdx: number = -1;\n protected isUrlMode = false;\n\n\n protected get linkTool(): ToolbarItem | undefined {\n return this.toolbarItems[this.urlIdx];\n }\n\n private get urlDropdownRef() {\n return this.dropdowns?.get(this.urlIdx);\n }\n\n ngOnChanges(sp: SimpleChanges) {\n if(sp['type'] && !this.class){\n this.class = this.type === 'bubble' ? 'bubble-toolbox' : 'top-toolbox';\n }\n }\n\n onTool(toolbarItem: ToolbarItem) {\n if (toolbarItem.disabled) return;\n\n if (toolbarItem.tool === 'link'){\n if(this.type === 'bubble')\n this.isUrlMode = true; \n }else{\n this.tool.emit(toolbarItem);\n }\n }\n\n onUrl(link: string) {\n this.tool.emit({ ...this.linkTool!, value: link });\n this.closeUrlInput()\n }\n\n trackByToolFn(index: number, item: ToolbarItem) {\n return item.tool;\n }\n\n protected closeUrlInput(){\n if(this.isUrlMode)\n this.isUrlMode = false;\n else\n this.urlDropdownRef!.close();\n }\n}\n","<ng-container *ngIf=\"!isUrlMode; else urlTemplate\">\n <button\n class=\"button\"\n *ngFor=\"let tool of toolbarItems; trackBy: trackByToolFn\"\n [disabled]=\"tool.disabled\"\n (click)=\"onTool(tool)\"\n [askDropdown]=\"\n tool.tool === 'link' && type === 'topbar' ? urlTemplate : undefined\n \"\n positions=\"BOTTOM_LEFT\"\n [attr.data-testid]=\"'button-' + tool.tool\"\n type=\"button\"\n >\n <span\n class=\"material-icons icon\"\n [ngClass]=\"{\n '-selected': tool.selected,\n '-disabled': tool.disabled,\n '-bubble': type === 'bubble',\n }\"\n >\n {{ tool.icon }}\n </span>\n </button>\n</ng-container>\n\n<ng-template #urlTemplate>\n <ask-richtext-url-prompt\n data-testid=\"url-prompt\"\n [url]=\"linkTool?.value || ''\"\n (url)=\"onUrl($event)\"\n (keydown.escape)=\"closeUrlInput()\"\n />\n</ng-template>\n","import {\n ChangeDetectorRef,\n ComponentRef,\n ElementRef,\n Injector,\n NgZone,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { RichtextWrapper, RichtextWrapperProxy } from './richtext-wrapper';\nimport { ALL_TOOLS, TOOL_FUNCTION_MAP, TOOL_ICON_MAP } from '../constants/richtext-toolbox.constants';\nimport { Tool, ToolKeys, ToolbarItem, ToolboxInput, ToolsState } from '../interfaces/richtext-toolbox.interface';\nimport { RichtextToolboxComponent } from '../components/richtext-toolbox/richtext-toolbox.component';\nimport { Subscription, delay } from 'rxjs';\n\nexport abstract class Toolbox {\n public readonly richtextWrapper: RichtextWrapper;\n\n protected hostEl: ElementRef<HTMLElement>;\n protected viewContainerRef: ViewContainerRef;\n protected renderer2: Renderer2;\n protected ngZone: NgZone;\n protected cd: ChangeDetectorRef;\n\n protected componentRef?: ComponentRef<RichtextToolboxComponent>;\n\n protected get component(){\n return this.componentRef?.instance;\n }\n\n protected get componentEl(): HTMLElement | undefined{\n return this.componentRef?.location.nativeElement;\n }\n\n private parentEl?: HTMLElement\n private toolboxInput?: ToolboxInput\n private _subscription?: Subscription;\n\n constructor(injector: Injector) {\n this.hostEl = injector.get(ElementRef<HTMLElement>);\n this.viewContainerRef = injector.get(ViewContainerRef);\n this.renderer2 = injector.get(Renderer2);\n this.ngZone = injector.get(NgZone);\n this.cd = injector.get(ChangeDetectorRef);\n\n this.parentEl = this.renderer2.parentNode(this.hostEl!.nativeElement);\n this.richtextWrapper = new RichtextWrapperProxy.RichtextWrapper(this.ngZone,this.cd,this.hostEl);\n this.listenRichtextState();\n }\n\n public destroyAll() {\n this._subscription?.unsubscribe();\n this.richtextWrapper.destroy();\n this.destroyComponent();\n }\n\n public toggleInputDisplay(display: boolean) {\n if(display){\n if(!this.isInputVisible())\n this.renderer2.appendChild(this.parentEl, this.hostEl?.nativeElement);\n }else {\n if(this.isInputVisible())\n this.renderer2.removeChild(this.parentEl, this.hostEl?.nativeElement);\n }\n };\n\n public setToolInput(toolInput: ToolboxInput){\n this.toolboxInput = toolInput;\n if(this.component){\n this.richtextWrapper.setDisabledTools(\n this.getDisabledTools(\n this.toolboxInput!.availableTools,\n this.toolboxInput!.disabledTools\n )\n );\n this.componentRef?.setInput('class', toolInput.class);\n }\n }\n\n private isInputVisible(){\n return this.parentEl?.contains(this.hostEl?.nativeElement)\n }\n\n private getDisabledTools(availableTools: ToolKeys, disabledTools: ToolKeys){\n const unavailableTools = ALL_TOOLS.filter(tool => !availableTools.includes(tool));\n return [...new Set([...unavailableTools, ...disabledTools])];\n }\n\n private listenRichtextState() {\n this._subscription = this.richtextWrapper.state$\n .pipe(delay(1))\n .subscribe((value) => {this.onToolsChanged(value)});\n }\n\n private getDefaultTools(): ToolbarItem[]{\n return [...(this.toolboxInput?.availableTools || []), 'clear' as Tool]\n .map((tool: Tool) => {\n return {\n tool,\n icon: TOOL_ICON_MAP[tool],\n toolFunctionName: TOOL_FUNCTION_MAP[tool],\n selected: false,\n disabled: true,\n };\n })\n }\n\n protected onToolsChanged(toolsState: ToolsState){\n if(!this.componentRef) return;\n this.componentRef.setInput('toolbarItems', this.prepareUpdatedTools(toolsState));\n }\n\n protected isVisible() {\n return this.hostEl.nativeElement.contains(this.componentEl!);\n }\n\n protected destroyComponent() {\n this.componentRef?.destroy();\n }\n\n protected displayComponent(): void {\n this.componentRef = this.viewContainerRef.createComponent(RichtextToolboxComponent);\n this.componentRef.setInput('toolbarItems', this.prepareUpdatedTools(this.richtextWrapper.state));\n this.componentRef.setInput('class', this.toolboxInput?.class);\n this.component!.tool.subscribe((tool: ToolbarItem) => {\n this.richtextWrapper[tool.toolFunctionName](tool?.value as any)\n })\n }\n\n protected prepareUpdatedTools(toolState: ToolsState): ToolbarItem[]{\n let tools = this.getDefaultTools()\n const {formats, disabledTools} = toolState;\n\n return tools.map((tool) => {\n if(tool.tool === 'clear'){\n tool.disabled = false;\n } else {\n tool.selected = !!formats[tool.tool];\n tool.disabled = disabledTools.includes(tool.tool);\n if(tool.tool === 'link')\n tool.value = formats[tool.tool];\n }\n\n return tool;\n });\n }\n}","import { Injector } from \"@angular/core\";\nimport { BoundsStatic } from \"quill\";\nimport { Toolbox } from \"./toolbox\";\nimport { ToolsState } from \"../interfaces/richtext-toolbox.interface\";\n\nconst TOOLBOX_HEIGHT = 40;\nconst MARGIN = 8;\nconst MOUSE_EVENT = 'mouseup'\n\nclass BubbleToolbox extends Toolbox {\n private clickListener?: (event: MouseEvent) => void;\n \n constructor(injector: Injector) {\n super(injector);\n }\n \n private move(bounds: BoundsStatic) {\n this.renderer2.setStyle(this.componentEl,'top',`${bounds.top - (TOOLBOX_HEIGHT + MARGIN)}px`);\n this.renderer2.setStyle(this.componentEl,'left',`${bounds.left}px`);\n }\n \n private listenOutsideClicks(){\n this.clickListener = (event) => {\n if(\n !this.componentEl?.contains(event.target as Node) \n && this.isVisible()\n ){\n this.destroyComponent();\n }\n }\n document.body.addEventListener(MOUSE_EVENT, this.clickListener);\n }\n \n override onToolsChanged(state: ToolsState): void {\n super.onToolsChanged(state)\n const { hasSelection, hasFocus, bounds } = state;\n if (hasSelection && bounds) {\n if(!this.isVisible())\n this.displayComponent();\n this.move(bounds);\n } else {\n if(this.isVisible() && hasFocus)\n this.destroyComponent();\n }\n }\n \n override displayComponent() {\n super.displayComponent();\n this.listenOutsideClicks();\n this.renderer2.appendChild(this.hostEl?.nativeElement,this.componentEl);\n this.componentRef!.setInput('type','bubble');\n }\n\n override destroyComponent() {\n document.body.removeEventListener(MOUSE_EVENT, this.clickListener!);\n super.destroyComponent();\n }\n }\n\n\nexport const BubbleToolboxProxy = {\n BubbleToolbox\n}","import { Injector } from \"@angular/core\";\nimport { Toolbox } from \"./toolbox\";\nimport { ToolbarItem, ToolsState } from \"../interfaces/richtext-toolbox.interface\";\n\nclass TopbarToolbox extends Toolbox {\n\n constructor(injector: Injector) {\n super(injector);\n this.displayComponent();\n }\n \n \n override displayComponent(): void {\n super.displayComponent();\n const parentElement = this.renderer2.parentNode(this.hostEl?.nativeElement);\n this.renderer2.appendChild(parentElement,this.componentEl);\n this.renderer2.appendChild(parentElement, this.hostEl?.nativeElement);\n this.componentRef!.setInput('type','topbar');\n }\n\n override prepareUpdatedTools(toolState: ToolsState): ToolbarItem[]{\n const toolbarItems = super.prepareUpdatedTools(toolState);\n const { formats, hasSelection, hasFocus } = toolState;\n\n toolbarItems.forEach(tool => {\n if(!hasFocus) {\n tool.disabled = true\n return;\n }\n\n if (tool.tool === 'clear') {\n tool.disabled = !hasSelection;\n } else if (tool.tool === 'link') {\n tool.selected = !!formats.link;\n tool.disabled = !hasSelection && !formats.link;\n tool.value = formats?.link;\n }\n })\n return toolbarItems\n }\n }\n \n\n export const TopbarToolboxProxy = {\n TopbarToolbox\n }","import {\n Directive,\n EventEmitter,\n Injector,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n forwardRef,\n} from '@angular/core';\nimport {\n ToolKeys,\n ToolLayout,\n ToolsState,\n} from '../../interfaces/richtext-toolbox.interface';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Subscription, distinctUntilChanged, filter } from 'rxjs';\nimport { areObjectsEqual } from '../../helpers/are-objects-equal.helper';\nimport { Toolbox } from '../../classes/toolbox';\nimport { BubbleToolboxProxy } from '../../classes/bubble-toolbox';\nimport { TopbarToolboxProxy } from '../../classes/topbar-toolbox';\n\nexport type ShortcutTemplate = {\n key: string;\n template: string;\n}\n\n@Directive({\n selector: '[askRichtextToolbox]',\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RichtextToolboxDirective),\n },\n ],\n})\nexport class RichtextToolboxDirective\n implements OnChanges, ControlValueAccessor\n{\n private toolbox?: Toolbox;\n\n private onChange!: (value: string) => void;\n private onTouched!: () => void;\n private subscription?: Subscription;\n\n @Input() rtPlaceholder = '';\n @Input() rtTools: ToolKeys = [];\n @Input() rtDisabledTools: ToolKeys = [];\n @Input() rtType: ToolLayout = 'topbar';\n @Input() rtToolbarOnly = false;\n @Input() rtMaxlength: number = -1;\n @Input() rtToolbarClass = '';\n @Input() rtEditorClass = '';\n @Input() rtBreakOnEnter = false;\n @Input() rtAllowImages = false;\n @Input() rtShortcutTemplate?: ShortcutTemplate;\n\n @Output() inputChange = new EventEmitter<string>();\n @Output() inputEnter = new EventEmitter();\n @Output() inputEscape = new EventEmitter();\n @Output() inputFocus = new EventEmitter();\n @Output() toolChange = new EventEmitter<ToolsState>();\n\n constructor(private injector: Injector) {}\n\n ngOnChanges(sp: SimpleChanges) {\n if (sp['rtType']) {\n this.prepareToolbar();\n }\n\n if (sp['rtPlaceholder']) {\n this.toolbox?.richtextWrapper.setPlaceholder(this.rtPlaceholder);\n }\n if (sp['rtToolbarOnly']) {\n this.toolbox?.toggleInputDisplay(!this.rtToolbarOnly)\n }\n\n if(sp['rtMaxlength']){\n this.toolbox?.richtextWrapper.setMaxLength(this.rtMaxlength);\n }\n\n if(sp['rtAllowImages']){\n this.toolbox?.richtextWrapper.setAllowImages(this.rtAllowImages);\n }\n\n if (sp['rtDisabledTools'] || sp['rtTools'] || sp['rtToolbarClass']) {\n this.toolbox?.setToolInput({\n availableTools: this.rtTools,\n disabledTools: this.rtDisabledTools,\n class: this.rtToolbarClass,\n })\n }\n\n if(sp['rtEditorClass']){\n this.toolbox?.richtextWrapper.setEditorClass(this.rtEditorClass);\n }\n\n if(sp['rtBreakOnEnter']){\n this.toolbox?.richtextWrapper.setBreakOnEnter(this.rtBreakOnEnter);\n }\n\n if(sp['rtShortcutTemplate'] && this.rtShortcutTemplate){\n this.toolbox?.richtextWrapper.setShortcutTemplate(\n this.rtShortcutTemplate!.key,\n this.rtShortcutTemplate!.template\n );\n }\n }\n\n ngOnDestroy() {\n this.destroyAll();\n }\n\n focus() {\n this.toolbox?.richtextWrapper.focus();\n }\n\n getTextLength(){\n return this.toolbox?.richtextWrapper.getTextLength();\n }\n\n //CVA\n\n writeValue(text: string): void {\n this.toolbox?.richtextWrapper.setText(text);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n if (isDisabled) this.toolbox?.richtextWrapper.disable();\n else this.toolbox?.richtextWrapper.enable();\n }\n\n getCurrentCursorPosition(){\n return this.toolbox?.richtextWrapper.getCurrentCursorPosition();\n }\n\n public getTextWithoutHtmlTags(): string {\n return this.toolbox?.richtextWrapper.getTextWithoutHtmlTags() || '';\n }\n\n public insertText(index: number, text: string, emitEvent = true){\n this.toolbox?.richtextWrapper.insertText(index, text, emitEvent);\n }\n\n private prepareToolbar(){\n if (this.toolbox) this.destroyAll();\n\n this.toolbox = this.generateToolboxLayout(this.rtType);\n this.prepareListeners(this.toolbox);\n }\n\n private prepareListeners(toolbox: Toolbox) {\n if(this.subscription) this.subscription.unsubscribe();\n this.subscription = new Subscription();\n this.subscription.add(toolbox.richtextWrapper.listenTextChanges$\n .subscribe((v)=>{this.update(v)}));\n this.subscription.add(toolbox.richtextWrapper.listenOnTouched$.subscribe((touched)=>{\n this.onTouched()\n this.inputFocus.emit(touched);\n }));\n this.subscription.add(toolbox.richtextWrapper.listenEnter$.subscribe(()=>{this.inputEnter.emit()}));\n this.subscription.add(toolbox.richtextWrapper.listenEscape$.subscribe(()=>{this.inputEscape.emit()}));\n this.subscription.add(toolbox.richtextWrapper.state$\n .pipe(distinctUntilChanged((a, b) => areObjectsEqual(a, b)))\n .subscribe((state)=>{this.toolChange.emit(state)}))\n }\n\n private update(value: string){\n this.inputChange.emit(value);\n this.onChange(value);\n }\n\n private destroyAll() {\n this.toolbox?.destroyAll();\n this.subscription?.unsubscribe();\n }\n\n private generateToolboxLayout(type: ToolLayout) {\n const toolbox = this.getToolbox(type);\n toolbox.richtextWrapper.setPlaceholder(this.rtPlaceholder);\n toolbox.setToolInput({\n availableTools: this.rtTools,\n disabledTools: this.rtDisabledTools,\n class: this.rtToolbarClass,\n })\n toolbox.toggleInputDisplay(!this.rtToolbarOnly)\n toolbox.richtextWrapper.setMaxLength(this.rtMaxlength);\n toolbox.richtextWrapper.setAllowImages(this.rtAllowImages);\n toolbox.richtextWrapper.setEditorClass(this.rtEditorClass);\n return toolbox;\n }\n\n private getToolbox(type: ToolLayout){\n switch(type){\n case 'bubble':\n return new BubbleToolboxProxy.BubbleToolbox(this.injector);\n case 'topbar':\n return new TopbarToolboxProxy.TopbarToolbox(this.injector);\n }\n }\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: 'input[askInput]'\n})\nexport class InputDirective {\n @HostBinding('class.default-input') defaultButton = true;\n}\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n selector: '[askListItem]',\n})\nexport class ListItemDirective {\n @HostBinding('class.list-item') listItem = true;\n}\n","import {Component, Input} from '@angular/core';\n\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\n@Component({\n selector: 'ask-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss']\n})\nexport class ModalComponent<T extends ComponentType<T>> {\n @Input() content!: T;\n @Input() fullscreen = false;\n @Input() scroll = false;\n}\n","<div\n data-testid=\"ask-modal\"\n class=\"ask-modal\"\n [class.-fullscreen]=\"fullscreen\"\n [class.-scroll]=\"scroll\"\n>\n <div class=\"body\">\n <ng-container *ngComponentOutlet=\"content\"></ng-container>\n </div>\n</div>\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalBody]'\n})\nexport class ModalBodyDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-body')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalFooter]'\n})\nexport class ModalFooterDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-footer')\n }\n\n}\n","import {Directive, ElementRef} from '@angular/core';\n\n@Directive({\n selector: '[askModalHeader]'\n})\nexport class ModalHeaderDirective {\n\n constructor(el: ElementRef) {\n el.nativeElement.classList.add('ask-modal-header')\n }\n\n}\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-character-counter',\n templateUrl: './character-counter.component.html',\n styleUrls: ['./character-counter.component.scss']\n})\nexport class CharacterCounterComponent {\n protected _count: number = 0;\n\n @Input() public threshold = 100;\n\n @Input() public set count(num: number) {\n this._count = num;\n this.show = num <= this.threshold;\n this.limitReached = num <= 0;\n }\n\n @HostBinding('class.-show') show = false;\n @HostBinding('class.-limit') limitReached = false;\n}\n","{{ _count }}\n","import {ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, TemplateRef} from '@angular/core';\n\n@Component({\n selector: 'ask-extendable-panel',\n templateUrl: './extendable-panel.component.html',\n styleUrls: ['./extendable-panel.component.scss']\n})\nexport class ExtendablePanelComponent {\n @Input()\n isOpen = false\n \n id?: number\n\n @HostBinding('class.-highlight')\n @Input()\n highlight = false\n\n @Input()\n arrowPosition: 'left' | 'right' = 'right';\n\n @Input()\n headerTemplate: TemplateRef<any> | null = null;\n\n @Input()\n panelClass = ''\n\n @Input()\n contentGray = true\n\n @Input()\n isReply = false\n\n @Output() closed = new EventEmitter<void>()\n @Output() opened = new EventEmitter<void>()\n\n constructor(private changeRef: ChangeDetectorRef) {\n }\n\n public open() {\n this.isOpen = true\n this.opened.emit()\n this.changeRef.detectChanges()\n }\n\n public close() {\n this.isOpen = false\n this.closed.emit()\n this.changeRef.detectChanges()\n }\n\n}\n","<div [ngClass]=\"{ 'panel-container': !panelClass, 'panel-closed': !isOpen, 'content-open': !contentGray}\" [class]=\"panelClass\">\n <div (click)=\"isOpen ? close() : open()\" class=\"header\" data-testid=\"extendable-panel-header\" >\n <ng-container *ngIf=\"arrowPosition === 'left'\">\n <span [ngClass]=\"{'display-arrow': isReply}\" class=\"header-action material-icons\">{{isOpen ? 'expand_less' : 'expand_more'}}</span>\n </ng-container>\n\n <ng-container *ngIf=\"!headerTemplate; else headerTemplate\">\n <div class=\"header-title\">\n <ng-content select=\"[title]\"></ng-content>\n </div>\n <div class=\"header-description\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"arrowPosition === 'right'\">\n <span class=\"header-action material-icons\">{{isOpen ? 'expand_less' : 'expand_more'}}</span>\n </ng-container>\n\n </div>\n <div [hidden]=\"!isOpen\" class=\"panel-block\" [ngClass]=\"{'-non-gray': !contentGray, 'fade-in-bck': isOpen}\">\n <ng-container>\n <ng-content select=\"[content]\"></ng-content>\n </ng-container>\n <ng-container>\n <ng-content select=\"[footer]\"></ng-content>\n </ng-container>\n </div>\n</div>","import {Component, ContentChildren, Input} from '@angular/core';\nimport {ExtendablePanelComponent} from \"./extendable-panel/extendable-panel.component\";\nimport {Subscription} from \"rxjs\";\n\n@Component({\n selector: 'ask-accordion',\n templateUrl: './accordion.component.html',\n styleUrls: ['./accordion.component.scss']\n})\nexport class AccordionComponent {\n private subscriptions: Subscription[] = []\n\n @Input()\n multiple = false\n\n @ContentChildren(ExtendablePanelComponent) set panels(elements: ExtendablePanelComponent[]) {\n if (this.subscriptions.length) {\n this.subscriptions.forEach(sub => sub.unsubscribe())\n this.subscriptions = []\n }\n if (!elements || this.multiple) return;\n\n elements.forEach((element, index) => {\n element.id = index\n this.subscriptions.push(element.opened.subscribe(() => {\n elements.forEach(el => {\n if (el.id !== element.id) el.close()\n })\n }))\n })\n }\n\n}\n","<ng-content select=\"ask-extendable-panel\"></ng-content>\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\n\ntype PageItem = {\n page: string;\n onClick: Function;\n isSelected: boolean;\n isGroupChange: boolean;\n}\n\nexport type PageChangeEvent = {\n page: number;\n pageSize: number;\n}\n\n@Component({\n selector: 'ask-pagination',\n templateUrl: './pagination.component.html',\n styleUrls: ['./pagination.component.scss']\n})\nexport class PaginationComponent implements OnInit, OnChanges {\n\n @Input({ required: true }) maxPages: number = 1;\n @Input() selectedPage = 1;\n @Input() maxPageItemsOnDisplay: number = 5;\n @Input() resultsPerPage: number = 10;\n @Input() resultsPerPageOptions: Array<number> = [10, 20, 30, 50, 100];\n\n @Output() pageChange: EventEmitter<PageChangeEvent> = new EventEmitter<PageChangeEvent>();\n\n protected pagesDisplay: Array<PageItem> = [];\n protected currentPageGroup = 0;\n protected disablePrevious = true;\n protected disableNext = false;\n\n ngOnInit() {\n this.currentPageGroup = this.getGroupByPage(this.selectedPage);\n this.buildDisplay(this.currentPageGroup);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['maxPages'] && this.pagesDisplay.length) {\n this.buildDisplay(0);\n this.changePage(1);\n }\n }\n\n public changePage(page: number) {\n const pageAsString = page.toString();\n\n this.selectedPage = page;\n\n this.pagesDisplay.forEach(page => {\n page.isSelected = page.page === pageAsString;\n });\n\n const selectedPageGroup = this.getGroupByPage(this.selectedPage);\n if (selectedPageGroup !== this.currentPageGroup) {\n this.buildDisplay(selectedPageGroup);\n }\n else {\n this.checkArrowsState();\n }\n\n this.emitChange();\n }\n\n private buildDisplay(pageGroup: number) {\n this.currentPageGroup = pageGroup;\n\n const newDisplay: Array<PageItem> = [];\n\n this.buildCurrentPageGroup(newDisplay, pageGroup);\n this.addPreviousPageGroupIfNeeded(newDisplay);\n this.addNextPageGroupIfNeeded(newDisplay);\n this.checkArrowsState();\n\n this.pagesDisplay = newDisplay;\n }\n\n private buildCurrentPageGroup(newDisplay: Array<PageItem>, pageGroup: number) {\n const initialPage = pageGroup * this.maxPageItemsOnDisplay + 1;\n\n for (let i = initialPage; i < initialPage + this.maxPageItemsOnDisplay && i <= this.maxPages; i++) {\n newDisplay.push(this.getPageItem(i.toString()));\n }\n }\n\n private addPreviousPageGroupIfNeeded(newDisplay: Array<PageItem>) {\n if (Number(newDisplay[0].page) > 1) {\n newDisplay.unshift(\n this.getPageItem('1'),\n this.getPageItem('...', this.incrementPageGroup.bind(this, -1))\n );\n }\n }\n\n private addNextPageGroupIfNeeded(newDisplay: Array<PageItem>) {\n if (Number(newDisplay[newDisplay.length - 1].page) < this.maxPages) {\n newDisplay.push(\n this.getPageItem('...', this.incrementPageGroup.bind(this, 1)),\n this.getPageItem(this.maxPages.toString())\n );\n }\n }\n\n private getPageItem(page: string, clickFn?: Function): PageItem {\n return {\n page: page,\n isSelected: Number(page) === this.selectedPage,\n isGroupChange: page === '...',\n onClick: clickFn || this.changePage.bind(this, Number(page)),\n }\n }\n\n private incrementPageGroup(num: number) {\n this.buildDisplay(this.currentPageGroup + num);\n }\n\n private getGroupByPage(page: number) {\n return Math.ceil(page / this.maxPageItemsOnDisplay) - 1;\n }\n\n private checkArrowsState() {\n this.disablePrevious = this.selectedPage === 1;\n this.disableNext = this.selectedPage === this.maxPages;\n }\n\n protected handleResultsPerPageChange(value: string) {\n this.resultsPerPage = Number(value);\n this.changePage(1);\n }\n\n protected emitChange() {\n this.pageChange.emit({\n page: this.selectedPage,\n pageSize: this.resultsPerPage\n })\n }\n}\n","<div class=\"page-size\">\n <p class=\"label\">{{ 'RESULTS_PER_PAGE' | translate }}</p>\n\n <select\n class=\"size\"\n name=\"resultsPerPage\"\n id=\"resultsPerPage\"\n data-testid=\"results-per-page-select\"\n [ngModel]=\"resultsPerPage\"\n (ngModelChange)=\"handleResultsPerPageChange($event)\"\n >\n <option *ngFor=\"let value of resultsPerPageOptions\" [value]=\"value\">{{ value }}</option>\n </select>\n</div>\n\n<div class=\"page-selector\">\n <button\n type=\"button\"\n class=\"previous\"\n data-testid=\"previous-button\"\n [disabled]=\"disablePrevious\"\n (click)=\"changePage(selectedPage - 1)\"\n >\n <span class=\"material-icons\">\n chevron_left\n </span>\n </button>\n\n <div class=\"page-list\" data-testid=\"page-list\">\n <button\n *ngFor=\"let page of pagesDisplay\"\n type=\"button\"\n class=\"page\"\n [ngClass]=\"{\n '-selected': page.isSelected,\n '-more': page.isGroupChange,\n }\"\n (click)=\"page.onClick()\"\n >\n {{ page.page }}\n </button>\n </div>\n\n <button\n type=\"button\"\n class=\"next\"\n data-testid=\"next-button\"\n [disabled]=\"disableNext\"\n (click)=\"changePage(selectedPage + 1)\"\n >\n <span class=\"material-icons\">\n chevron_right\n </span>\n </button>\n</div>\n","import {Component, EventEmitter, HostBinding, Input, OnInit, Output} from '@angular/core';\nimport * as _ from 'lodash';\nimport {PageChangeEvent} from \"../pagination/pagination.component\";\n\nexport type ColumnConfig = {\n title: string;\n sortable: boolean;\n propName: string;\n justify: 'left' | 'right' | 'center';\n sort?: 'asc' | 'desc';\n width?: string;\n export?:{\n hidden?: boolean;\n type?: 'PERCENTAGE' | 'DATE'| 'STRING' | 'NUMBER' | 'I18N';\n }\n icon?: ColumnConfigIcon;\n}\n\nexport type ColumnConfigIcon = {\n name: string;\n message?: string;\n};\n\nexport type PaginationConfig = {\n itemsPerPage: number;\n itemsPerPageOptions?: Array<number>;\n maxPageItemsOnDisplay?: number;\n totalItems: number;\n currentPage: number;\n totalPages: number;\n}\n\nexport type TableConfig = {\n columnConfig: ColumnConfig[];\n paginationConfig?: PaginationConfig;\n hasTotalizer?: boolean;\n maxHeight?: number;\n hoverLine?: boolean;\n}\n\n@Component({\n selector: 'ask-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.scss']\n})\nexport class TableComponent{\n\n private _tableConfig: TableConfig = {\n columnConfig: []\n };\n\n protected readonly ITEMS_PER_PAGE_OPTIONS_DEFAULT = [10, 20, 30, 50, 100];\n protected readonly MAX_PAGE_ITEMS_ON_DISPLAY = 5;\n\n @Input() set tableConfig(config: TableConfig){\n this._tableConfig = {\n ...config,\n hoverLine: config.hoverLine ?? true\n }\n\n this.maxHeight = config.maxHeight;\n };\n\n @Input() data: any[] = [];\n\n @Output() sort = new EventEmitter();\n @Output() pageChange = new EventEmitter<PageChangeEvent>();\n\n\n @Input() maxHeight?: number = undefined;\n\n onPageChange(event: PageChangeEvent){\n this.pageChange.emit(event);\n }\n\n get tableConfig(): TableConfig{\n return this._tableConfig;\n };\n\n onSort(column: ColumnConfig){\n if(!column.sortable){\n return;\n }\n column.sort = column.sort === 'asc' ? 'desc' : 'asc';\n _.forEach(this.tableConfig.columnConfig, cconfig => {\n if(cconfig.propName !== column.propName){\n cconfig.sort = undefined;\n }\n });\n this.sort.emit(column);\n }\n\n}\n","<div class=\"table-scroll\" [style.max-height.px]=\"maxHeight\">\n <table class=\"table-container\">\n <thead class=\"table-header\">\n <tr class=\"header-row\">\n <th class=\"table-th\" [class.-sortable]=\"column.sortable\"\n *ngFor=\"let column of tableConfig.columnConfig\"\n (click)=\"onSort(column)\"\n [style.width]=\"column.width\">\n <div class=\"-{{column.justify}}\">\n <span\n *ngIf=\"column.icon\"\n class=\"material-icons header-icon notranslate\"\n askTooltip\n [askTooltipMessage]=\"(column.icon.message || '') | translate\"\n [askTooltipPosition]=\"'above'\"\n >\n {{ column.icon.name }}\n </span>\n\n <span>{{ column.title | translate }}</span>\n\n <span *ngIf=\"column.sortable\" class=\"material-icons sort-icon\" [class.active]=\"!!column.sort\">\n <ng-container [ngSwitch]=\"column.sort\">\n <ng-container *ngSwitchCase=\"'asc'\">south</ng-container>\n <ng-container *ngSwitchCase=\"'desc'\">north</ng-container>\n <ng-container *ngSwitchDefault>south</ng-container>\n </ng-container>\n </span>\n </div>\n </th>\n </tr>\n </thead>\n\n <tbody [class.-hover]=\"tableConfig.hoverLine\">\n <ng-content select=\"[ask-table-body]\"></ng-content>\n </tbody>\n\n <tfoot class=\"table-footer\" *ngIf=\"tableConfig.hasTotalizer\">\n <ng-container >\n <ng-content select=\"[ask-table-totalizer]\"></ng-content>\n </ng-container>\n </tfoot>\n </table>\n</div>\n\n<div\n *ngIf=\"(tableConfig.paginationConfig?.totalPages || 0) >= 1\"\n class=\"pagination-wrapper\"\n>\n <ask-pagination\n class=\"pagination\"\n [maxPages]=\"tableConfig.paginationConfig?.totalPages || 0\"\n [resultsPerPage]=\"tableConfig.paginationConfig?.itemsPerPage || ITEMS_PER_PAGE_OPTIONS_DEFAULT[0]\"\n [resultsPerPageOptions]=\"tableConfig.paginationConfig?.itemsPerPageOptions || ITEMS_PER_PAGE_OPTIONS_DEFAULT\"\n [maxPageItemsOnDisplay]=\"tableConfig.paginationConfig?.maxPageItemsOnDisplay || MAX_PAGE_ITEMS_ON_DISPLAY\"\n [selectedPage]=\"tableConfig.paginationConfig?.currentPage || 1\"\n (pageChange)=\"onPageChange($event)\"\n ></ask-pagination>\n</div>\n","import {PageChangeEvent} from \"../../components/pagination/pagination.component\";\nimport {TableConfig} from \"../../components/table/table.component\";\n\nexport function updatePaginationConfig<T>(event: PageChangeEvent, data: Array<T>, config: TableConfig) {\n const { page, pageSize } = event;\n const totalItems = data.length || 0;\n const totalPages = Math.ceil(totalItems / pageSize);\n\n config.paginationConfig = {\n itemsPerPage: pageSize,\n currentPage: page,\n totalItems,\n totalPages,\n };\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {PaginationConfig, TableConfig} from \"../../components/table/table.component\";\nimport {PageChangeEvent} from \"../../components/pagination/pagination.component\";\nimport {updatePaginationConfig} from \"./paginate.helper\";\n\n@Pipe({\n name: 'paginate',\n pure: false,\n})\nexport class PaginatePipe implements PipeTransform {\n\n transform<T>(data: Array<T>, config: TableConfig, initialPageEvent?: PageChangeEvent): Array<T> {\n if (!config.paginationConfig) {\n updatePaginationConfig(initialPageEvent || {page: 1, pageSize: 10}, data, config);\n }\n\n return this.getPaginatedSlice(data, config.paginationConfig!);\n }\n\n getPaginatedSlice(data: Array<any>, paginationConfig: PaginationConfig) {\n const { currentPage, itemsPerPage } = paginationConfig;\n\n return data.slice(itemsPerPage * (currentPage - 1), itemsPerPage * currentPage);\n }\n\n}\n","export function removeDiacritics(str: string) {\n return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f\\W]/g, \"\");\n}\n\n\nexport function filterSelectedList<T extends GenericObject>(list: T[], value: string, propertyNames: Array<(keyof T)>) {\n if (!value) {\n return [...list];\n }\n\n return searchArray(list, propertyNames, value)\n}\n\ntype GenericObject = { [key: string]: any }\n\nexport function searchArray<T extends GenericObject>(array: T[], keys: Array<(keyof T)>, searchValue: string) {\n const searchValueNormalized = removeDiacritics(searchValue.toLowerCase());\n\n const regex = new RegExp(searchValueNormalized, \"i\");\n\n return array.filter(item => {\n return keys.some(key => {\n const attributeValueNormalized = removeDiacritics(item[key].toLowerCase());\n return regex.test(attributeValueNormalized);\n });\n });\n}\n","import {InjectionToken} from \"@angular/core\";\n\nexport type CountryDdi = {\n countryName: string;\n code: string\n countryCode: string;\n backgroundPosition: string;\n mask: string;\n dash_mask: string;\n}\n\nexport type CountryData = Omit<CountryDdi, 'dash_mask'> & {\n dashMask: string\n}\n\nexport const FLAG_PROVIDER_URL = new InjectionToken<string>('Flags')\n","import {Inject, Injectable} from \"@angular/core\";\nimport {CountryData, CountryDdi, FLAG_PROVIDER_URL} from \"../providers/flag.provider\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {map, of, tap, take} from \"rxjs\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\nenum CountryLanguageMap {\n EN = 'US',\n PT = 'BR',\n ES = 'ES'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport default class CountryFlagService {\n private defaultCountryCode = 'br';\n\n private defaultCountryLanguage = 'pt_br';\n\n private cacheList: CountryData[] = []\n\n constructor(\n @Inject(FLAG_PROVIDER_URL)\n private readonly flagUrl: string,\n private readonly http: HttpClient,\n private readonly translateService: TranslateService\n ) {}\n\n list = () => {\n if (!this.flagUrl) {\n return of([]);\n }\n\n if (this.cacheList.length) {\n return of([...this.cacheList]);\n }\n\n return this.http.get<CountryDdi[]>(this.flagUrl).pipe(\n map(countryData => countryData.map(this.formatCountryData)),\n tap(data => this.cacheList = data)\n );\n }\n\n getDefaultCountryFlag(searchData: CountryData[], useCountryCode?: string) {\n const language = this.getDefaultCountryLanguage();\n const countryCode = useCountryCode || this.extractCountryCode([ \n language, navigator.language \n ]);\n return this.getCountryDataForFlag(searchData, countryCode);\n }\n\n getCountryDataForFlag(searchData: CountryData[], countryCode: string) {\n return searchData.find(countryItem => countryItem.countryCode === countryCode) || searchData[0];\n }\n\n private getDefaultCountryLanguage() {\n const language = this.translateService.currentLang;\n\n if (!language) {\n return this.defaultCountryLanguage;\n }\n\n const [mainLanguage, countryLanguage] = language?.split(/[_\\-]/);\n\n if (countryLanguage) {\n return language;\n }\n\n const defaultCountryLanguage = Object.keys(CountryLanguageMap).includes(mainLanguage.toUpperCase() as any) &&\n CountryLanguageMap[mainLanguage.toUpperCase() as keyof typeof CountryLanguageMap];\n\n return defaultCountryLanguage ? language + '_' + defaultCountryLanguage : this.defaultCountryLanguage;\n }\n\n private extractCountryCode(languagesToSearch: string[]) {\n let foundCountryCode = null, currentIndex = 0;\n\n while (foundCountryCode === null && currentIndex < languagesToSearch.length) {\n const language = languagesToSearch[currentIndex];\n const [, secondLanguage] = language.split(/[_\\-]/)\n\n const countryCode = secondLanguage?.toLowerCase() || language.toLowerCase();\n\n if (countryCode) {\n foundCountryCode = countryCode;\n }\n\n currentIndex++;\n }\n\n return foundCountryCode || this.defaultCountryCode;\n }\n\n private formatCountryData({mask, dash_mask, ...data}: CountryDdi): CountryData {\n return {\n ...data,\n mask: mask.replace(/[0-9]/g, '0').replace('X', '9'),\n dashMask: dash_mask\n };\n\n }\n}\n","export const DIGIT_REGEX = /\\d/g;\nexport const NON_DIGIT_REGEX = /\\D+/g;\n","import {parsePhoneNumber} from \"libphonenumber-js\";\n\nexport function getCountryFromPhone(phone: string) {\n if (!phone) return;\n const onlyNumbers = phone.replace(/[^\\d+]/g, '').replace(/\\D/g, '');\n\n try {\n const phoneLocation = parsePhoneNumber(`+${onlyNumbers}`);\n\n if (phoneLocation && phoneLocation.country)\n return phoneLocation.country as string;\n } catch (e) {\n return 'BR';\n }\n return 'BR';\n}\n","import {\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n forwardRef,\n inject,\n Input, OnInit,\n Output,\n Provider,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n} from '@angular/core';\nimport {ControlValueAccessor, FormControl, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Overlay} from \"@angular/cdk/overlay\";\nimport {debounceTime, map, Subscription} from \"rxjs\";\nimport {AskDropdownDirective} from \"../../directives\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {filterSelectedList} from \"../../../shared/helpers/filter.helper\";\nimport CountryFlagService from \"../../../shared/services/country-flag.service\";\nimport {CountryData} from \"../../../shared/providers/flag.provider\";\nimport {NON_DIGIT_REGEX} from \"../../../shared/utils/regex\";\nimport {getCountryFromPhone} from \"../../helpers/phone.helper\";\nimport {OverlayComponent} from \"../../classes/overlay.component\";\n\nconst valueAccessor: Provider = {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => PhoneDdiComponent),\n};\n\n@Component({\n selector: 'ask-phone-ddi',\n templateUrl: './phone-ddi.component.html',\n styleUrls: ['./phone-ddi.component.scss'],\n providers: [valueAccessor],\n})\nexport class PhoneDdiComponent extends OverlayComponent implements OnInit, ControlValueAccessor {\n @Input() disabled = false;\n @Input() value = '';\n @Input() useCountryCode!: string;\n @Output() valueChange = new EventEmitter<string>();\n @Output() onChangeFlag = new EventEmitter<CountryData>();\n\n @ViewChild('phoneContainer') phoneContainer: ElementRef | undefined\n\n @ViewChild('wrapper') wrapper: ElementRef | undefined\n\n @ViewChild(\"menuContainer\") menuContainer: ElementRef | undefined\n\n @ViewChild('overlayContent') overlayContent: TemplateRef<any> | undefined\n\n @ViewChildren(AskDropdownDirective)\n dropdownList?: QueryList<AskDropdownDirective>;\n\n selectedFlag?: CountryData;\n countryItems: CountryData[] = []\n onChange!: (value?: any) => void;\n onTouch!: () => void;\n protected closed = true;\n protected inputValue = ''\n protected searchFieldControl = new FormControl(\"\")\n protected filteredOptions: any[] = []\n private _destroy = inject(DestroyRef)\n private scrollSub?: Subscription;\n\n constructor(\n overlay: Overlay,\n viewContainerRef: ViewContainerRef,\n private countryFlagService: CountryFlagService\n ) {\n super(overlay, viewContainerRef);\n }\n\n ngOnInit() {\n this.countryFlagService.list().subscribe(this.addAvailableFlags.bind(this))\n this.handleInputChange();\n }\n\n onPaste(event: any) {\n event.preventDefault()\n const pastedText = event.clipboardData?.getData('text') || ''\n const countryCode = this.selectedFlag?.code.substring(1);\n const countryMask = this.selectedFlag?.mask;\n if (countryCode && countryMask && pastedText.startsWith(countryCode) && pastedText.length === countryMask.length) {\n const number = pastedText.substring(countryCode.length);\n this.inputValue = number;\n this.onChangePhoneNumber(number);\n return;\n }\n this.inputValue = pastedText;\n this.onChangePhoneNumber(pastedText);\n\n }\n\n handleOptionSelected(item: any) {\n this.selectedFlag = item;\n this.hideOptions();\n this.onChange('');\n this.onChangeFlag.emit(this.selectedFlag);\n setTimeout(() => {\n this.inputValue = '';\n this.searchFieldControl.setValue('');\n this.value = '';\n });\n }\n\n display(option: any) {\n return this.displayFn(option)\n }\n\n override shouldClose(event: MouseEvent) {\n return !this.closed\n && !this.wrapper?.nativeElement.contains(event.target)\n && !this.menuContainer?.nativeElement.contains(event.target)\n }\n\n override afterClosed() {\n this.closed = true;\n this.searchFieldControl.setValue('')\n this.scrollSub?.unsubscribe();\n }\n\n handleFlagClick(event?: Event) {\n event?.stopPropagation()\n if (!this.disabled) {\n this.closed\n ? this.showOptions()\n : this.hideOptions()\n }\n }\n\n showOptions() {\n this.closed = false\n if (this.phoneContainer && this.overlayContent) {\n this.open(this.phoneContainer, this.overlayContent, {\n backdropClass: 'cdk-overlay-transparent-backdrop',\n hasBackdrop: true,\n maxHeight: 300,\n })\n }\n }\n\n hideOptions() {\n this.close();\n }\n\n onChangePhoneNumber(number: string) {\n const newValue = number?.replace(NON_DIGIT_REGEX, '');\n\n if (this.selectedFlag && newValue?.startsWith(this.selectedFlag?.code.substring(1))) {\n this.value = newValue\n this.onChange(this.value)\n } else if (!newValue || !this.value.includes(newValue)) {\n // substring to remove the + from the code (ex: +55 -> 55)\n this.value = (newValue ? (this.selectedFlag?.code ?? '').substring(1) : '') + newValue;\n this.onChange(this.value)\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouch = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n if (this.countryItems.length && this.value) {\n this.initSelectedFlag(this.countryItems);\n }\n }\n\n protected readonly displayFn = (countryFlag: any) => `${countryFlag.countryName} (${countryFlag.code})`;\n\n protected readonly filterFn = (search: string) =>\n filterSelectedList(this.countryItems, search, ['code', 'countryName']);\n\n private addAvailableFlags(data: CountryData[]) {\n this.countryItems = data;\n this.filteredOptions = this.countryItems;\n this.initSelectedFlag(data);\n }\n\n private initSelectedFlag(data: CountryData[]) {\n if (!this.value) {\n return this.getDefaultCountryFlag(data);\n }\n const country = getCountryFromPhone(this.value);\n if (!country) {\n return this.getDefaultCountryFlag(data);\n }\n this.selectedFlag = this.countryItems.find(item => item.countryCode === country.toLowerCase())\n const numberWithoutCountry = this.value.substring(this.selectedFlag?.code.substring(1).length || 0)\n\n setTimeout(() =>{\n this.inputValue = numberWithoutCountry;\n this.onChangeFlag.emit(this.selectedFlag);\n })\n }\n\n private getDefaultCountryFlag(data: CountryData[]) {\n this.selectedFlag = this.countryFlagService.getDefaultCountryFlag(data, this.useCountryCode);\n this.onChangeFlag.emit(this.selectedFlag);\n }\n\n private handleInputChange() {\n this.searchFieldControl.valueChanges.pipe(\n takeUntilDestroyed(this._destroy),\n debounceTime(300),\n map(value => this.filterFn(value || ''))\n ).subscribe(items => {\n this.filteredOptions = items\n })\n }\n\n handlePhoneChange(event: any) {\n this.onChangePhoneNumber(event.target.value)\n }\n}\n","<div #phoneContainer [style]=\"{cursor: disabled ? 'not-allowed' : 'auto'}\" class=\"phone-ddi\">\n\n <div\n #wrapper\n (click)=\"handleFlagClick()\"\n *ngIf=\"selectedFlag\"\n [style]=\"{cursor: !disabled ? 'pointer' : 'not-allowed'}\"\n class=\"flag\"\n data-testid=\"flag\">\n\n <div [style]=\"{backgroundPosition: this.selectedFlag?.backgroundPosition}\" class=\"flag-icon\"></div>\n <div class=\"flag-arrow\"></div>\n </div>\n\n <input\n *ngIf=\"selectedFlag; else loadingPhoneInput\"\n [disabled]=\"disabled\"\n [(ngModel)]=\"inputValue\"\n (change)=\"handlePhoneChange($event)\"\n [placeholder]=\"selectedFlag.mask\"\n [mask]=\"selectedFlag.mask\"\n [prefix]=\"selectedFlag.code + ' '\"\n (paste)=\"onPaste($event)\"\n askAutofocus\n class=\"phone\"\n />\n\n <ng-template #loadingPhoneInput>\n <div class=\"skeleton\">\n <ask-skeleton [barsHeight]=\"24\" [radius]=\"10\" style=\"height: 24px;\"/>\n </div>\n </ng-template>\n\n</div>\n\n<ng-template #overlayContent>\n <div #menuContainer class=\"menu-container\">\n <div [style]=\"{padding: '8px'}\">\n <ask-input\n [formControl]=\"searchFieldControl\"\n [placeholder]=\"'FIND_DDI_OR_COUNTRY' | translate\"\n [autoFocus]=\"true\"\n class=\"search\"\n />\n </div>\n\n <ng-container *ngIf=\"!filteredOptions.length; else list\">\n <span class=\"empty\">{{\n 'NO_OPTIONS' | translate\n }}</span>\n </ng-container>\n\n <ng-template #list>\n <div [askScrollThreshold]=\"50\" askScroll class=\"list\">\n <ng-container *ngFor=\"let countryItem of filteredOptions\">\n <div\n (click)=\"handleOptionSelected(countryItem)\"\n class=\"option-item\"\n >\n <div [style]=\"{backgroundPosition: countryItem.backgroundPosition}\" class=\"country\"></div>\n <p class=\"text\">{{ display(countryItem) }}</p>\n </div>\n </ng-container>\n </div>\n </ng-template>\n </div>\n</ng-template>\n","import {Pipe, PipeTransform} from '@angular/core';\n\n@Pipe({name: 'forceBreakLine'})\nexport class ForceBreakLinePipe implements PipeTransform {\n\n transform(style: any, replaceNewLines?: any) {\n return style.replace(/<br\\s*\\/?>/ig, '\\r\\n\\r\\n').replace(/\\\\n/g, '\\n');\n }\n}\n","import {Subject} from \"rxjs\";\nimport {OverlayRef} from \"@angular/cdk/overlay\";\nimport {ElementRef} from \"@angular/core\";\n\nexport class ModalRef {\n private closeSubject = new Subject<any | null>()\n public element?: HTMLElement\n\n constructor(private overlayRef: OverlayRef) {\n }\n\n close(data?: any) {\n this.closeSubject.next(data ?? null)\n this.overlayRef.dispose()\n }\n\n get afterClose() {\n return this.closeSubject.asObservable()\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport type ModalConfig = {\n hasBackdrop?: boolean;\n onScroll?: 'close' | 'keep';\n data?: any;\n fullscreen?: boolean;\n maxWidth?: number;\n scroll?: boolean;\n};\n\nexport const ASK_MODAL_CONFIG = new InjectionToken<ModalConfig>(\n 'Default modal options'\n);\nexport const ASK_MODAL_DATA = new InjectionToken<any>('Modal data');\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, PositionStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector } from '@angular/core';\nimport {\n AskModalConfirmData,\n ConfirmationModalComponent,\n} from '../../components/modal/confirmation-modal/confirmation-modal.component';\nimport {\n ComponentType,\n ModalComponent,\n} from '../../components/modal/modal.component';\nimport { ModalRef } from './modal-ref';\nimport { ASK_MODAL_DATA, ModalConfig } from './modal.config';\n\ntype Positions = Array<ConnectedPosition> | 'TOP_RIGHT' | 'TOP_LEFT' | 'BOTTOM_RIGHT' | 'BOTTOM_LEFT';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n // TODO: create a state of open modals\n private readonly AVAILABLE_POSITIONS: { TOP_RIGHT: ConnectedPosition; TOP_LEFT: ConnectedPosition; BOTTOM_RIGHT: ConnectedPosition; BOTTOM_LEFT: ConnectedPosition; } = {\n TOP_RIGHT: { panelClass: 'ask-dropdown-top-right', originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n TOP_LEFT: { panelClass: 'ask-dropdown-top-left', originX: 'start', originY: 'top', overlayX: 'end', overlayY: 'top' },\n BOTTOM_RIGHT: { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n BOTTOM_LEFT: { panelClass: 'ask-dropdown-bottom-left', originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },\n }\n\n constructor(\n private overlay: Overlay, \n private injector: Injector, \n private overlayPositionBuilder: OverlayPositionBuilder) {}\n\n open<T>(component: ComponentType<T>, config?: ModalConfig, baseElement: HTMLElement = document.body) {\n const overlayRef = this.getOverlay(config);\n const finalConfig = {\n data: config?.data ?? null,\n };\n const modalRef = new ModalRef(overlayRef);\n const injector = this.createInjector({ ...finalConfig }, modalRef);\n const modalPortal = new ComponentPortal(ModalComponent, null, injector);\n const ref = overlayRef.attach(modalPortal);\n\n modalRef.element = ref.location.nativeElement;\n // If necessary, this can be parametrized using ModalConfig interface\n overlayRef.backdropClick().subscribe(() => modalRef.close());\n\n ref.instance.content = component;\n ref.instance.fullscreen = config?.fullscreen || false;\n ref.instance.scroll = config?.scroll || false;\n\n return modalRef;\n }\n\n confirmModal(data: AskModalConfirmData) {\n return this.open(ConfirmationModalComponent, {\n data,\n maxWidth: 440,\n });\n }\n\n private createInjector(\n config: ModalConfig['data'],\n modalRef: ModalRef\n ): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_MODAL_DATA, useValue: config.data },\n { provide: ModalRef, useValue: modalRef },\n ],\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay\n .position()\n .global()\n .centerVertically()\n .centerHorizontally();\n }\n\n private setOverlayConfig(elementRef: ElementRef, hasBackdrop: boolean, positions: Positions) {\n const positionStrategy = this.overlayPositionBuilder\n .flexibleConnectedTo(elementRef)\n .withPositions(this.getOverlayPosition(positions));\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n\n return {\n hasBackdrop: hasBackdrop,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy\n };\n }\n\n private getOverlayPosition(positions: Positions): ConnectedPosition[] {\n if (positions) {\n let chosenPositions: Array<ConnectedPosition> = [];\n\n if (typeof positions === 'string') {\n chosenPositions.push(this.AVAILABLE_POSITIONS[positions]);\n }\n\n else if (Array.isArray(positions)) {\n chosenPositions = [...positions];\n }\n\n chosenPositions = chosenPositions.filter(p => !!p);\n\n if (chosenPositions.length) return chosenPositions;\n }\n\n return [\n this.AVAILABLE_POSITIONS.BOTTOM_RIGHT,\n this.AVAILABLE_POSITIONS.BOTTOM_LEFT,\n this.AVAILABLE_POSITIONS.TOP_RIGHT,\n this.AVAILABLE_POSITIONS.TOP_LEFT,\n ]\n }\n\n // Modal config can be used to parametrize the overlay creation params\n getOverlay(config?: ModalConfig) {\n const positionStrategy = this.getPositionStrategy();\n const dimensionConfig: OverlayConfig = config?.fullscreen\n ? { width: '100vw', height: '100vh' }\n : { maxWidth: config?.maxWidth ?? '80vw' };\n\n return this.overlay.create({\n positionStrategy,\n hasBackdrop: config?.hasBackdrop || true,\n backdropClass: 'cdk-overlay-dark-backdrop',\n disposeOnNavigation: true,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n ...dimensionConfig,\n });\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport {\n ButtonAppearance,\n ButtonColor,\n} from '../../../directives/button/ask-base-button.directive';\nimport { ASK_MODAL_DATA, ModalRef } from '../../../services/modal';\n\n@Component({\n selector: 'lib-confirmation-modal',\n templateUrl: './confirmation-modal.component.html',\n styleUrls: ['./confirmation-modal.component.scss'],\n})\nexport class ConfirmationModalComponent {\n protected title = '';\n protected text = '';\n protected buttons: ButtonConfig[] = [];\n constructor(\n protected modalRef: ModalRef,\n @Inject(ASK_MODAL_DATA) data: AskModalConfirmData\n ) {\n this.title = data.title;\n this.text = data.text;\n this.buttons = data.buttons ?? [];\n }\n}\n\nexport interface AskModalConfirmData {\n title: string;\n text: string;\n buttons?: ButtonConfig[];\n}\n\ntype ButtonConfig = {\n text: string;\n appearance?: ButtonAppearance;\n color: ButtonColor;\n value: string;\n};\n","<h1 class=\"modal-title\" askModalHeader>{{ title }}</h1>\n<p\n askModalBody\n *ngIf=\"text\"\n class=\"modal-content\"\n data-testid=\"ask-confirmation-modal\"\n>\n {{ text }}\n</p>\n<div askModalFooter class=\"modal-actions\">\n <ng-container *ngFor=\"let button of buttons\">\n <ng-container [ngSwitch]=\"button.appearance\">\n <button\n *ngSwitchCase=\"'text'\"\n size=\"medium\"\n askTextButton\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n <button\n *ngSwitchCase=\"'outlined'\"\n askStrokedButton\n size=\"medium\"\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n <button\n *ngSwitchDefault\n askButton\n size=\"medium\"\n [color]=\"button.color\"\n (click)=\"modalRef.close(button.value)\"\n >\n {{ button.text }}\n </button>\n </ng-container>\n </ng-container>\n</div>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-loading-bar',\n templateUrl: './loading-bar.component.html',\n styleUrls: ['./loading-bar.component.scss']\n})\nexport class LoadingBarComponent {\n @Input() mode: 'indeterminate' | 'determinate' = 'indeterminate';\n}\n","<mat-progress-bar [mode]=\"mode\" color=\"primary\"/>\n","import Quill from 'quill';\n\nlet BlockEmbed = Quill.import('blots/block/embed');\n\nexport class HTMLPanelQuillBlot extends BlockEmbed {\n static blotName = 'htmlPanel';\n static tagName = 'div';\n static className = 'quill-html-pannel';\n\n static create(html: string) {\n let node: HTMLElement = super.create();\n\n const el = document.createElement('div');\n el.contentEditable = 'false';\n el.style.cursor = 'default'; \n el.style.all = 'initial';\n el.innerHTML = html;\n node.appendChild(el);\n return node;\n }\n\n static value(domNode: HTMLElement) {\n return (domNode.firstChild as HTMLElement)?.innerHTML;\n }\n}\n\n\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-tag',\n templateUrl: './tag.component.html',\n styleUrls: ['./tag.component.scss'],\n})\nexport class TagComponent {\n @Input() prefix: string = '';\n @Input() content: string | number | null = '';\n @Input() suffix: string = '';\n @Input() bold: boolean = false;\n}\n","<div class=\"container\" [class.-bolder]=\"bold\">\n {{ prefix }}{{ content }}{{ suffix }}\n</div>\n","import {Component, HostBinding, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-arrow-tag',\n templateUrl: './arrow-tag.component.html',\n styleUrl: './arrow-tag.component.scss'\n})\nexport class ArrowTagComponent {\n @Input({ required: true }) value!: string;\n @Input() @HostBinding('style.--arrow-tag-bg-color') backgroundColor: string = '#132939';\n @Input() @HostBinding('style.--arrow-tag-font-color') fontColor: string = 'var(--color-text-inverse-contrast)';\n}\n","{{ value }}\n\n<svg class=\"arrow\" width=\"14\" height=\"28\" viewBox=\"0 0 14 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clip-path=\"url(#clip0_594_353)\">\n <path d=\"M11.5428 10.9544L2.55528 1.27785C1.79844 0.46299 0.736534 0 -0.375576 0H-22C-24.2091 0 -26 1.79086 -26 4V24C-26 26.2091 -24.2091 28 -22 28H-0.443661C0.708059 28 1.80389 27.5036 2.56338 26.6378L11.619 16.3143C12.9716 14.7724 12.9387 12.4573 11.5428 10.9544Z\" />\n </g>\n <defs>\n <clipPath id=\"clip0_594_353\">\n <rect width=\"14\" height=\"28\" fill=\"white\"/>\n </clipPath>\n </defs>\n</svg>\n","import {Component, Input} from '@angular/core';\n\n@Component({\n selector: 'ask-tab',\n templateUrl: './tab.component.html',\n styleUrl: './tab.component.scss'\n})\nexport class TabComponent {\n @Input() value: any;\n\n public callbackFn!: Function;\n public active = false;\n\n protected onClick() {\n this.callbackFn(this)\n }\n}\n","<button type=\"button\" class=\"tab-button\" [class.-active]=\"active\" (click)=\"onClick()\">\n <ng-content></ng-content>\n</button>\n","import {\n AfterContentInit,\n Component,\n ContentChildren,\n EventEmitter,\n Input,\n OnInit,\n Output,\n QueryList\n} from '@angular/core';\nimport {TabComponent} from \"./tab/tab.component\";\n\n@Component({\n selector: 'ask-tab-group',\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss'\n})\nexport class TabGroupComponent implements AfterContentInit {\n @Input() active: any;\n @Output() activeChange: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChildren(TabComponent) tabs!: QueryList<TabComponent>;\n\n ngAfterContentInit() {\n this.tabs.forEach((tab: TabComponent) => {\n tab.active = this.active == tab.value;\n tab.callbackFn = this.onTabChange.bind(this);\n });\n }\n\n onTabChange(tab: TabComponent) {\n if (this.active === tab.value) return;\n\n this.active = tab.value;\n this.activeChange.emit(this.active);\n\n this.tabs.forEach(tab => {\n tab.active = this.active == tab.value;\n })\n }\n\n}\n","<div class=\"tab-list\"><ng-content #content></ng-content></div>\n","import { Directive, HostBinding, Input } from '@angular/core';\ntype Size =\n | 8\n | 10\n | 12\n | 14\n | 16\n | 18\n | 20\n | 24\n | 28\n | 30\n | 32\n | 40\n | 48\n | 56\n | 64;\n\n@Directive({\n host: {\n '[class.sizeable]': 'true',\n },\n})\nexport class SizeableDirective {\n @HostBinding('style.width.px')\n @HostBinding('style.height.px')\n @HostBinding('style.fontSize.px')\n @Input()\n size: Size = 20;\n @Input() disabled: boolean = false;\n\n ngOnChanges() {}\n}\n","export const names = [\n 'chatweb',\n 'email',\n 'facebook',\n 'instagram',\n 'phone',\n 'whatsapp',\n] as const;\nexport const themes = ['dark', 'light'] as const;\nexport const variations = [\n 'contrast',\n 'default',\n 'disabled',\n 'grey',\n 'inverse',\n] as const;\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageUtilService<T> {\n\n constructor(private localstorage: Storage) { }\n\n public getItem(key: string): T {\n return JSON.parse(this.localstorage.getItem(key) as string);\n }\n\n public setItem(key: string, value: T): void {\n this.localstorage.setItem(key, JSON.stringify(value));\n }\n\n public removeItem(key: string): void {\n this.localstorage.removeItem(key);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { StorageUtilService} from \"../storage/storage-util.service\";\nimport { BehaviorSubject } from 'rxjs';\n\ntype Theme = 'dark' | 'light';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ThemeService {\n themeKey = 'asksuite-theme-color';\n theme$ = new BehaviorSubject<Theme>('light');\n\n constructor(private readonly storageUtilService: StorageUtilService<Theme>) {\n const theme = this.storageUtilService.getItem(this.themeKey) || 'light';\n this.theme$.next(theme);\n this.saveTheme();\n }\n\n getTheme(){\n return this.theme$.value;\n }\n\n setTheme(theme: Theme) {\n this.theme$.next(theme);\n this.saveTheme();\n }\n\n listenThemeChange(){\n return this.theme$.asObservable();\n }\n\n private saveTheme(){\n document.body.className = this.theme$.value\n this.storageUtilService.setItem(this.themeKey, this.theme$.value)\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { map, Observable } from 'rxjs';\nimport { ThemeService } from '../theme/theme.service';\nimport { CustomIconNames, CustomIconVariations } from '../../interfaces/icons.type';\nimport { names, themes, variations } from '../../constants/icons';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CustomIconsRegisterService {\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer,\n private theme: ThemeService,\n ) {}\n\n register() {\n const icons = this.getIconSrcs();\n for (const cIcon of icons) {\n this.matIconRegistry.addSvgIcon(\n cIcon,\n this.domSanitizer.bypassSecurityTrustResourceUrl(\n `assets/icons/proprietary/${cIcon}.svg`\n ),\n );\n }\n }\n\n getIcon$(name: CustomIconNames, variations: CustomIconVariations) {\n return (this.theme.listenThemeChange() as unknown as Observable<string>).pipe(map((theme) => `${theme}-${name}-${variations}`));\n }\n\n hasIcon(name: string) {\n return names.includes(name as any);\n }\n\n private getIconSrcs() {\n let _icons = [];\n\n for (const theme of themes) {\n for (const variation of variations) {\n for (const name of names) {\n _icons.push(`${theme}-${name}-${variation}`);\n }\n }\n }\n return _icons;\n }\n}\n","import { Component, Input, ViewChild } from '@angular/core';\nimport { MatIconModule, MatIcon } from '@angular/material/icon';\nimport { Subscription } from 'rxjs';\nimport { CustomIconsRegisterService } from '../../services/custom-icon-register/custom-icon-register.service';\nimport { SizeableDirective } from '../../directives/sizeable/sizeable.directive';\nimport { CustomIconNames, CustomIconVariations } from '../../interfaces/icons.type';\n\ntype MatIconFontSets = 'material-icons' | 'material-symbols-outlined' | 'material-icons-outlined' //| 'material-icons-round' | 'material-icons-sharp' | 'material-icons-two-tone';\n\n@Component({\n selector: 'ask-icon-v2',\n standalone: true,\n imports: [MatIconModule],\n templateUrl: './icon-v2.component.html',\n styleUrl: './icon-v2.component.scss',\n providers: [{ provide: SizeableDirective, useExisting: IconV2Component }],\n})\nexport class IconV2Component extends SizeableDirective {\n @ViewChild(MatIcon, { static: true }) matIcon?: MatIcon;\n\n @Input({ required: true })\n name: CustomIconNames | string = '';\n @Input()\n appearance: Exclude<CustomIconVariations, 'disabled'> = 'default';\n @Input()\n theme: 'dark' | 'light' = 'light';\n @Input()\n color?: string;\n @Input()\n matFontSet: MatIconFontSets = 'material-icons';\n\n protected fontIcon: string = '';\n protected svgIcon: string = '';\n\n\n\n private iconSubscription?: Subscription;\n\n constructor(private customIconRegister: CustomIconsRegisterService) {\n super();\n }\n\n ngOnInit() {\n this.prepareIcon();\n }\n\n override ngOnChanges() {\n this.prepareIcon();\n }\n\n ngOnDestroy() {\n this.iconSubscription?.unsubscribe();\n }\n\n private prepareIcon() {\n this.iconSubscription?.unsubscribe();\n\n if (this.customIconRegister.hasIcon(this.name)) {\n this.iconSubscription = this.prepareCustomIconName().subscribe(\n (iconName: string) => {\n this.svgIcon = iconName;\n }\n );\n } else {\n this.fontIcon = this.name;\n }\n }\n\n private prepareCustomIconName() {\n let appearance: CustomIconVariations = this.appearance;\n\n if (this.disabled) appearance = 'disabled';\n\n return this.customIconRegister.getIcon$(\n this.name as CustomIconNames,\n appearance\n );\n }\n}\n","<mat-icon inline [style.color]=\"color\" [fontSet]=\"matFontSet\" [svgIcon]=\"svgIcon\">{{fontIcon}}</mat-icon>\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {ButtonComponent} from './components/button/button.component';\nimport {CommonModule} from '@angular/common';\nimport {MatTooltipModule} from '@angular/material/tooltip';\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 {AutocompleteComponent} from './components/autocomplete/autocomplete.component';\nimport {CdkConnectedOverlay, CdkOverlayOrigin, OverlayModule,} 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 {\n DatePickerCalendarComponent\n} from './components/date-picker/date-picker-calendar/date-picker-calendar.component';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {SkeletonComponent} from './components/skeleton/skeleton.component';\nimport {NgxSkeletonLoaderModule} from 'ngx-skeleton-loader';\nimport {ToastComponent} from './components/toast/toast.component';\nimport {SpinnerComponent} from \"./directives/spinner/spinner.component\";\nimport {\n AskButtonDirective,\n AskDropdownDirective,\n AskTextButtonDirective,\n AskTooltipDirective,\n AutofocusDirective,\n BadgeDirective,\n InputDirective,\n ListItemDirective,\n RichtextToolboxDirective,\n ScrollDirective,\n SpinnerDirective\n} from \"./directives\";\nimport {ModalBodyDirective, ModalComponent, ModalFooterDirective, ModalHeaderDirective} from './components/modal';\nimport {CharacterCounterComponent} from './components/character-counter/character-counter.component';\nimport {AccordionComponent} from \"./components/accordion/accordion.component\";\nimport {ExtendablePanelComponent} from \"./components/accordion/extendable-panel/extendable-panel.component\";\nimport { TableComponent } from './components/table/table.component';\nimport { PaginationComponent } from './components/pagination/pagination.component';\nimport { PaginatePipe } from './pipes/paginate/paginate.pipe';\nimport { RichtextUrlPromptComponent } from './components/richtext-url-prompt/richtext-url-prompt.component';\nimport { RichtextToolboxComponent } from './components/richtext-toolbox/richtext-toolbox.component';\nimport {PhoneDdiComponent} from './components/phone-ddi/phone-ddi.component';\nimport {NgxMaskDirective, NgxMaskPipe, provideNgxMask} from \"ngx-mask\";\nimport {FLAG_PROVIDER_URL} from \"../shared/providers/flag.provider\";\nimport {ForceBreakLinePipe} from \"./pipes/force-break-line/force-break-line.pipe\";\nimport { ConfirmationModalComponent } from './components/modal/confirmation-modal/confirmation-modal.component';\nimport { LoadingBarComponent } from './components/loading-bar/loading-bar.component';\nimport {MatProgressBarModule} from \"@angular/material/progress-bar\";\nimport { AskStrokedButtonDirective } from './directives/button/ask-stroked-button.directive';\nimport Quill from 'quill';\nimport { HTMLPanelQuillBlot } from './helpers/html-panel-quill-blot.helper';\nimport { IconComponent } from './components/icon/icon.component';\nimport { TagComponent } from \"./components/tag/tag.component\";\nimport { ArrowTagComponent } from './components/arrow-tag/arrow-tag.component';\nimport { TabGroupComponent } from './components/tab-group/tab-group.component';\nimport { TabComponent } from './components/tab-group/tab/tab.component';\nimport { IconV2Component } from './components/icon-v2/icon-v2.component';\nimport { CustomIconsRegisterService } from './services/custom-icon-register/custom-icon-register.service';\nimport { StorageUtilService } from './services/storage/storage-util.service';\n\n\nQuill.register(HTMLPanelQuillBlot);\n\nexport function initMyLib(myLibService: Storage) {\n return new StorageUtilService(myLibService);\n}\n\n\n@NgModule({\n declarations: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n PhoneDdiComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n ToastComponent,\n AskButtonDirective,\n ModalComponent,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent,\n TableComponent,\n TagComponent,\n PaginationComponent,\n PaginatePipe,\n RichtextToolboxDirective,\n RichtextUrlPromptComponent,\n RichtextToolboxComponent,\n AskTextButtonDirective,\n ForceBreakLinePipe,\n ConfirmationModalComponent,\n LoadingBarComponent,\n AskStrokedButtonDirective,\n InputDirective,\n ListItemDirective,\n ArrowTagComponent,\n TabGroupComponent,\n TabComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n CdkOverlayOrigin,\n CdkConnectedOverlay,\n OverlayModule,\n TranslateModule.forChild(),\n NgxSkeletonLoaderModule,\n MatTooltipModule,\n NgxMaskDirective,\n NgxMaskPipe,\n MatProgressBarModule,\n IconComponent,\n IconV2Component\n ],\n exports: [\n ButtonComponent,\n InputComponent,\n SelectComponent,\n BoxComponent,\n AvatarComponent,\n DropdownContainerComponent,\n AskDropdownDirective,\n AutocompleteComponent,\n PhoneDdiComponent,\n ChipsComponent,\n CheckboxComponent,\n DatePickerComponent,\n DatePickerCalendarComponent,\n SkeletonComponent,\n SpinnerDirective,\n BadgeDirective,\n AutofocusDirective,\n ScrollDirective,\n AskTooltipDirective,\n AskButtonDirective,\n AskTextButtonDirective,\n ModalBodyDirective,\n ModalHeaderDirective,\n ModalFooterDirective,\n CharacterCounterComponent,\n AccordionComponent,\n ExtendablePanelComponent,\n TableComponent,\n PaginationComponent,\n PaginatePipe,\n RichtextToolboxDirective,\n ForceBreakLinePipe,\n LoadingBarComponent,\n AskStrokedButtonDirective,\n InputDirective,\n ListItemDirective,\n IconComponent,\n TagComponent,\n ArrowTagComponent,\n TabGroupComponent,\n TabComponent,\n IconV2Component\n ],\n providers: [\n {\n provide: Storage,\n useValue: window.localStorage\n },\n provideNgxMask(),\n ]\n})\nexport class AsksuiteCitrusModule {\n static forRoot(params?: { flagUrl?: string }): ModuleWithProviders<AsksuiteCitrusModule> {\n return {\n ngModule: AsksuiteCitrusModule,\n providers: [\n {\n provide: FLAG_PROVIDER_URL,\n useValue: params?.flagUrl || ''\n }\n ]\n }\n }\n\n constructor(private customIconsRegisterService: CustomIconsRegisterService) {\n this.customIconsRegisterService.register();\n }\n}\n","import {Injectable, Injector} from '@angular/core';\nimport {Overlay, PositionStrategy} from \"@angular/cdk/overlay\";\nimport {ComponentPortal} from \"@angular/cdk/portal\";\nimport {ToastComponent} from \"../../components/toast/toast.component\";\nimport {ASK_TOAST_CONFIG, ToastConfig, ToastData, ToastType} from \"./toast.config\";\nimport {ToastRef} from \"./toast-ref\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n\n lastToast?: ToastRef;\n\n private readonly TOP_MARGIN = 72;\n private readonly GAP = 8;\n\n constructor(\n private overlay: Overlay,\n private injector: Injector\n ) { }\n\n success(message: string, config?: ToastConfig) {\n this.pop('success', message, config);\n }\n\n info(message: string, config?: ToastConfig) {\n this.pop('info', message, config);\n }\n\n danger(message: string, config?: ToastConfig, text?: string) {\n this.pop('danger', message, config, text);\n }\n\n warning(message: string, config?: ToastConfig) {\n this.pop('warning', message, config);\n }\n\n pop(type: ToastType, message: string, config?: ToastConfig, text?: string) {\n if (this.lastToast && !this.lastToast?.overlay.overlayElement) {\n this.lastToast = undefined;\n }\n\n const positionStrategy = this.getPositionStrategy();\n const overlayRef = this.overlay.create({\n positionStrategy,\n });\n const toastRef = new ToastRef(overlayRef);\n const injector = this.createInjector({ type, message, config, text }, toastRef);\n const toastPortal = new ComponentPortal(ToastComponent, null, injector);\n\n overlayRef.attach(toastPortal);\n this.lastToast = toastRef;\n }\n\n private createInjector(data: ToastData, toastRef: ToastRef): Injector {\n return Injector.create({\n parent: this.injector,\n providers: [\n { provide: ASK_TOAST_CONFIG, useValue: data },\n { provide: ToastRef, useValue: toastRef },\n ]\n });\n }\n\n private getPositionStrategy(): PositionStrategy {\n return this.overlay.position().global().top(this.getTopOffset()).centerHorizontally();\n }\n\n private getTopOffset(): string {\n const offset = this.lastToast ?\n this.lastToast.getPosition().bottom + this.GAP :\n this.TOP_MARGIN;\n\n return `${offset}px`;\n }\n}\n","import {\n Injectable,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport {\n Overlay,\n OverlayRef,\n PositionStrategy,\n OverlayConfig,\n ConnectedPosition\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { DropdownContainerComponent } from '../../components/dropdown-container/dropdown-container.component';\n\nexport interface DropdownConfig {\n templateToRender: TemplateRef<any>;\n viewContainerRef: ViewContainerRef;\n referenceElement: HTMLElement;\n positionParams: any;\n closeOnOutsideClick?: boolean;\n}\n\nexport interface DropdownRef {\n close: (result?: any) => void;\n afterClosed: Subject<any>;\n}\n\n// Define an interface to map an overlay to its template.\ninterface RenderedDropdown {\n overlayRef: OverlayRef;\n template: TemplateRef<any>;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DynamicDropdownService {\n private overlayRefs: OverlayRef[] = [];\n // Keep track of rendered dropdowns and their templates.\n private renderedDropdowns: RenderedDropdown[] = [];\n\n constructor(private overlay: Overlay) {}\n\n /**\n * Opens a new dropdown with the given configuration.\n */\n open(config: DropdownConfig): DropdownRef {\n const overlayRef = this.createOverlay(\n config.referenceElement,\n config.positionParams,\n config.closeOnOutsideClick!\n );\n this.overlayRefs.push(overlayRef);\n\n // Attach the template to the overlay.\n this.attachTemplateToOverlay(\n config.templateToRender,\n config.viewContainerRef,\n overlayRef\n );\n // Track that this template is rendered.\n this.renderedDropdowns.push({ overlayRef, template: config.templateToRender });\n\n const afterClosed$ = this.createAfterClosedSubject();\n this.setupOverlayListeners(overlayRef, config.closeOnOutsideClick!, afterClosed$);\n\n return this.createModalRef(overlayRef, afterClosed$);\n }\n\n /**\n * Exposes a function to check if a given template is rendered.\n */\n public isTemplateRendered(template: TemplateRef<any>): boolean {\n return this.renderedDropdowns.some(item => item.template === template);\n }\n\n /**\n * Creates an overlay with the specified position and configuration.\n */\n private createOverlay(baseElement: HTMLElement, positionParams: any, closeOnOutsideClick: boolean): OverlayRef {\n const positionStrategy = this.createPositionStrategy(baseElement, positionParams);\n const overlayConfig = this.createOverlayConfig(positionStrategy, closeOnOutsideClick);\n return this.overlay.create(overlayConfig);\n }\n\n /**\n * Creates a flexible position strategy for the dropdown.\n */\n private createPositionStrategy(baseElement: HTMLElement, positionParams: any): PositionStrategy {\n const positions: ConnectedPosition[] = [\n { panelClass: 'ask-dropdown-bottom-right', originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },\n ];\n\n return this.overlay\n .position()\n .flexibleConnectedTo(baseElement)\n .withPositions(positions)\n .withFlexibleDimensions(false)\n .withPush(false);\n }\n\n /**\n * Creates the configuration for the overlay.\n */\n private createOverlayConfig(positionStrategy: PositionStrategy, closeOnOutsideClick: boolean): OverlayConfig {\n return new OverlayConfig({\n hasBackdrop: closeOnOutsideClick,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n }\n\n /**\n * Attaches the specified template to the overlay.\n */\n private attachTemplateToOverlay(\n templateRef: TemplateRef<any>,\n viewContainerRef: ViewContainerRef,\n overlayRef: OverlayRef,\n ) {\n const portal = new ComponentPortal(DropdownContainerComponent, viewContainerRef);\n const componentRef = overlayRef.attach(portal);\n componentRef.instance.content = templateRef;\n return portal;\n }\n\n /**\n * Sets up listeners for overlay events.\n */\n private setupOverlayListeners(overlayRef: OverlayRef, closeOnOutsideClick: boolean, afterClosed$: Subject<any>): void {\n if (closeOnOutsideClick) {\n overlayRef.backdropClick().subscribe(() => this.closeModal(overlayRef, null, afterClosed$));\n }\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape') {\n this.closeModal(overlayRef, null, afterClosed$);\n }\n });\n }\n\n /**\n * Creates a subject that emits when the dropdown is closed.\n */\n private createAfterClosedSubject(): Subject<any> {\n return new Subject<any>();\n }\n\n /**\n * Creates a reference for controlling the dropdown.\n */\n private createModalRef(overlayRef: OverlayRef, afterClosed$: Subject<any>): DropdownRef {\n return {\n close: (result?: any) => this.closeModal(overlayRef, result, afterClosed$),\n afterClosed: afterClosed$,\n };\n }\n\n /**\n * Closes the dropdown and cleans up.\n */\n private closeModal(overlayRef: OverlayRef, result: any, subject: Subject<any>): void {\n const overlayIndex = this.overlayRefs.indexOf(overlayRef);\n if (overlayIndex > -1) {\n this.overlayRefs.splice(overlayIndex, 1);\n }\n // Remove from our rendered dropdowns tracking.\n this.renderedDropdowns = this.renderedDropdowns.filter(item => item.overlayRef !== overlayRef);\n overlayRef.dispose();\n subject.next(result);\n subject.complete();\n }\n\n /**\n * Closes all open dropdowns.\n */\n closeAll(): void {\n this.overlayRefs.forEach(ref => ref.dispose());\n this.overlayRefs = [];\n this.renderedDropdowns = [];\n }\n}\n","export const PHONE_MASK_PATTERN = {\n '0': {\n pattern: /0/,\n fallback: '0',\n optional: false\n },\n '#': {\n pattern: /\\d/,\n optional: false\n },\n '_': {\n pattern: /\\d/,\n optional: true\n },\n 'X': {\n pattern: /\\d/,\n optional: true\n },\n '9': {\n pattern: /9/,\n fallback: '9',\n optional: false\n }\n}\n","import {Injectable} from '@angular/core';\nimport {PHONE_MASK_PATTERN} from \"../../../shared/utils/phone-mask-pattern\";\nimport {DIGIT_REGEX} from \"../../../shared/utils/regex\";\n\ntype PhoneMaskPatternKey = keyof typeof PHONE_MASK_PATTERN\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhoneValidationService {\n\n isPhoneValueValid(phone: string, dashMask: string) {\n const maskPatternItemsFound = this.extractMaskPatternItems(dashMask);\n const requiredPatternItemsFound = this.extractRequiredPatternItems(maskPatternItemsFound);\n\n if (!(phone.length >= requiredPatternItemsFound.length && phone.length <= maskPatternItemsFound.length)) {\n return false;\n }\n\n return this.validateMaskedPhoneValue(phone, maskPatternItemsFound);\n }\n\n private extractMaskPatternItems(dashMask: string): PhoneMaskPatternKey[] {\n const patternsOfMask = Object.keys(PHONE_MASK_PATTERN);\n\n return dashMask\n .replace(DIGIT_REGEX, '#')\n .split('')\n .filter((key: string) => patternsOfMask.includes(key)) as PhoneMaskPatternKey[];\n }\n\n private extractRequiredPatternItems(maskPatternItemsFound: PhoneMaskPatternKey[]): PhoneMaskPatternKey[] {\n return maskPatternItemsFound.filter((key: PhoneMaskPatternKey) =>\n PHONE_MASK_PATTERN.hasOwnProperty(key) && !PHONE_MASK_PATTERN[key].optional\n );\n }\n\n private validateMaskedPhoneValue(phoneValue: string, maskPatternItemsFound: PhoneMaskPatternKey[]): boolean {\n return !(maskPatternItemsFound\n .map((key: PhoneMaskPatternKey, index: number) => {\n const currentPattern = PHONE_MASK_PATTERN[key];\n\n const value = phoneValue.charAt(index) || '';\n\n return (currentPattern.optional && !value) || currentPattern.pattern.test(value);\n })\n .filter((result: boolean) => !result).length);\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {AbstractControl, ValidatorFn} from \"@angular/forms\";\nimport {CountryData} from \"../providers/flag.provider\";\nimport {NON_DIGIT_REGEX} from \"../utils/regex\";\nimport {PhoneValidationService} from \"../../lib/services/phone-ddi/phone-validation.service\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PhoneMaskValidator {\n\n constructor(private readonly phoneValidationService: PhoneValidationService) {\n }\n\n validate(selectedFlag: CountryData): ValidatorFn {\n return (control: AbstractControl): { invalidPhoneNumber: boolean } | null => {\n if (!selectedFlag?.dashMask) {\n return null;\n }\n\n const countryCode = selectedFlag.code.replace('+', '');\n const value = control.value\n ?.replace(NON_DIGIT_REGEX, '')\n .replace(new RegExp(`^${countryCode}\\\\D*`), '');\n\n if (!this.phoneValidationService.isPhoneValueValid(value, selectedFlag.dashMask)) {\n return {\n invalidPhoneNumber: true,\n };\n }\n\n return null;\n }\n }\n}\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/phone-ddi/phone-ddi.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';\nexport * from './lib/components/character-counter/character-counter.component';\nexport * from './lib/components/accordion/accordion.component';\nexport * from './lib/components/accordion/extendable-panel/extendable-panel.component';\nexport * from './lib/components/table/table.component';\nexport * from './lib/components/pagination/pagination.component';\nexport * from './lib/components/loading-bar/loading-bar.component';\nexport * from './lib/components/icon/icon.component';\nexport * from './lib/components/icon-v2/icon-v2.component';\nexport * from './lib/components/tag/tag.component';\nexport * from './lib/components/arrow-tag/arrow-tag.component';\nexport * from './lib/components/tab-group/tab-group.component';\nexport * from './lib/components/tab-group/tab/tab.component';\n\n// Directives\nexport * from './lib/directives';\nexport * from './lib/components/modal/directives';\n\n// Services\nexport * from './lib/services/toast/toast.service';\nexport * from './lib/services/modal';\nexport * from './lib/services/dynamic-dropdown/dynamic-dropdown.service';\nexport * from './lib/services/theme/theme.service';\n\n// Pipes\nexport * from './lib/pipes/paginate/paginate.pipe';\nexport * from './lib/pipes/force-break-line/force-break-line.pipe';\n\n// Config\nexport * from './lib/services/toast/toast.config';\n\n// Helpers\nexport * from './lib/pipes/paginate/paginate.helper';\n\n// Interfaces\nexport * from './lib/interfaces/richtext-toolbox.interface';\n\n// Validators\nexport * from './shared/validators/phone-mask.validator';\n\n// Provider\nexport * from './shared/providers/flag.provider';\n\n// Helpers\nexport * from './shared/helpers/filter.helper';\n\n// Classes\nexport * from './lib/classes/overlay.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["valueAccessor","i4.AutofocusDirective","i1","i2.AskTooltipDirective","i2","i3","i4","i5.ChipsComponent","i6.CheckboxComponent","i7.AutofocusDirective","i8.ScrollDirective","i2.ButtonComponent","i3.DatePickerCalendarComponent","i1.ToastRef","i1.RichtextUrlPromptStateService","i2.AskDropdownDirective","i3.RichtextUrlPromptComponent","i3.PaginationComponent","i5.InputComponent","i6.SkeletonComponent","i9","i3.AskButtonDirective","i4.ModalBodyDirective","i5.ModalHeaderDirective","i6.ModalFooterDirective","i7.AskTextButtonDirective","i8.AskStrokedButtonDirective","i1.StorageUtilService","i3.ThemeService","i1.CustomIconsRegisterService","i1.PhoneValidationService"],"mappings":"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"}