novo-elements 13.0.0-next.3 → 13.0.0-next.5

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.
@@ -188,7 +188,7 @@ declare class NovoInput extends NovoInputBase implements NovoFieldControl<any>,
188
188
  * @docs-private
189
189
  */
190
190
  focused: boolean;
191
- errorState: boolean;
191
+ get errorState(): boolean;
192
192
  /** @docs-private Implemented as part of NovoFieldControl. */
193
193
  lastKeyValue: string;
194
194
  /** @docs-private Implemented as part of NovoFieldControl.*/
@@ -152,6 +152,9 @@
152
152
  .popover-title {
153
153
  @include novo-title-text();
154
154
  margin-bottom: 1rem;
155
+ white-space: normal;
156
+ overflow: hidden;
157
+ max-width: 100%;
155
158
  }
156
159
  .popover-content {
157
160
  @include novo-body-text();
@@ -1105,6 +1105,9 @@ class NovoInputBase {
1105
1105
  }
1106
1106
  /** Directive that allows a native input to work inside a `NovoField`. */
1107
1107
  class NovoInput extends NovoInputBase {
1108
+ get errorState() {
1109
+ return this.ngControl && this.ngControl.invalid && (this.ngControl.dirty || this.ngControl.touched) || false;
1110
+ }
1108
1111
  /**
1109
1112
  * Implemented as part of NovoFieldControl.
1110
1113
  * @docs-private
@@ -1192,7 +1195,6 @@ class NovoInput extends NovoInputBase {
1192
1195
  * @docs-private
1193
1196
  */
1194
1197
  this.focused = false;
1195
- this.errorState = false;
1196
1198
  /** @docs-private Implemented as part of NovoFieldControl. */
1197
1199
  this.lastKeyValue = null;
1198
1200
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n standalone: false,\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({\n selector: '[novoPrefix]',\n standalone: false,\n})\nexport class NovoFieldPrefixDirective {}\n@Directive({\n selector: '[novoSuffix]',\n standalone: false,\n})\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n standalone: false,\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n },\n standalone: false,\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n YEAR_MONTH_DAY = 'yyyy-mm-dd',\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n standalone: false,\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormatService: DateFormatService) {\n super();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.dateFormatService.dateFormatAsImaskPattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString()}),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n if (!value) {\n return '';\n }\n return DateUtil.format(DateUtil.parse(value, { userDateFormat: this.labels.dateFormatString()}), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatYearMonthDay(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'YYYY-MM-DD');\n }\n return null;\n }\n\n formatValue(value: any, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n const dateFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n case DATE_FORMATS.YEAR_MONTH_DAY:\n formatted = this.formatYearMonthDay(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.unmask = false;\n this.imask = {\n mask: `${this.dateFormat.dateFormatAsImaskPattern} - ${this.dateFormat.dateFormatAsImaskPattern}`,\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const dateRangeFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n if (this['_initialValue'] && value === this['_initialValue']) {\n // if this call is coming from the super class, skip through.\n // If we ever wanted to reduce the need for this hack/workaround, we could refactor\n // IMaskDirective to exist as a child portion of DateRangeFormatDirective.\n super.writeValue(value);\n return;\n }\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr, { userDateFormat: this.labels.dateFormatString()});\n const endDate = DateUtil.parse(endStr, { userDateFormat: this.labels.dateFormatString()});\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n let pattern = `${this.dateFormat.dateFormatAsImaskPattern}, HH:mm`;\n if (!this.military) {\n pattern += ' aa';\n }\n this.imask = {\n mask: Date,\n pattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString() }),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: Date | string, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormatString().toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value as string, options);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: Date) => {\n let formatted: Date | string;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n\n get initialValue(): any {\n return this.maskValue;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n@Directive({\n selector: 'input[novoInput], textarea[novoInput], select[novoInput]',\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n standalone: false,\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n errorState: boolean = false;\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n @Output() onSelect = new EventEmitter<unknown>();\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n standalone: false,\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-field.mjs","sources":["../../../projects/novo-elements/src/elements/field/error/error.ts","../../../projects/novo-elements/src/elements/field/error/error.html","../../../projects/novo-elements/src/elements/field/field-control.ts","../../../projects/novo-elements/src/elements/field/hint/hint.ts","../../../projects/novo-elements/src/elements/field/hint/hint.html","../../../projects/novo-elements/src/elements/field/field.ts","../../../projects/novo-elements/src/elements/field/field.html","../../../projects/novo-elements/src/elements/field/fieldset.ts","../../../projects/novo-elements/src/elements/field/fieldset.html","../../../projects/novo-elements/src/elements/field/formats/base-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-range-format.ts","../../../projects/novo-elements/src/elements/field/formats/date-time-format.ts","../../../projects/novo-elements/src/elements/field/formats/time-format.ts","../../../projects/novo-elements/src/elements/field/input.ts","../../../projects/novo-elements/src/elements/field/picker.directive.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.ts","../../../projects/novo-elements/src/elements/field/toggle/picker-toggle.component.html","../../../projects/novo-elements/src/elements/field/field.module.ts","../../../projects/novo-elements/src/elements/field/novo-elements-elements-field.ts"],"sourcesContent":["// NG2\nimport { Component, OnInit } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'novo-error',\n templateUrl: './error.html',\n styleUrls: ['./error.scss'],\n standalone: false,\n})\nexport class NovoErrorElement implements OnInit {\n constructor(private sanitizer: DomSanitizer) {}\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","import { Directive } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\n/** An interface which allows a control to work inside of a `NovoField`. */\n@Directive()\nexport abstract class NovoFieldControl<T> {\n /** The value of the control. */\n value: T | null;\n\n /** The last key pressed. */\n lastKeyValue: string | null;\n\n /** The last cursor position. */\n lastCaretPosition: number | null;\n\n /**\n * Stream that emits whenever the state of the control changes such that the parent `NovoField`\n * needs to run change detection.\n */\n readonly stateChanges: Observable<void>;\n\n /** The element ID for this control. */\n readonly id: string;\n\n /** The placeholder for this control. */\n readonly placeholder: string;\n\n /** Gets the NgControl for this control. */\n readonly ngControl: NgControl | null;\n\n /** Whether the control is focused. */\n readonly focused: boolean;\n\n /** Whether the control is empty. */\n readonly empty: boolean;\n\n /** Whether the `NovoField` label should try to float. */\n // readonly shouldLabelFloat: boolean;\n // readonly shouldFieldHaveUnderline: boolean;\n\n /** Whether the control is required. */\n readonly required: boolean;\n\n /** Whether the control is disabled. */\n readonly disabled: boolean;\n\n /** Whether the control is in an error state. */\n readonly errorState: boolean;\n\n /** Whether the control can have multiple values. */\n readonly multiple?: boolean;\n /**\n * An optional name for the control type that can be used to distinguish `novo-form-field` elements\n * based on their control type. The form field will add a class,\n * `novo-form-field-type-{{controlType}}` to its root element.\n */\n readonly controlType?: string;\n\n /**\n * Whether the input is currently in an autofilled state. If property is not present on the\n * control it is assumed to be false.\n */\n readonly autofilled?: boolean;\n\n /** Sets the list of element IDs that currently describe this control. */\n abstract setDescribedByIds(ids: string[]): void;\n\n /** Handles a click on the control's container. */\n abstract onContainerClick(event: MouseEvent): void;\n\n abstract focus(options?: FocusOptions): void;\n}\n","// NG2\nimport { Component, Input, OnInit } from '@angular/core';\n\nlet nextUniqueId = 0;\n@Component({\n selector: 'novo-hint',\n templateUrl: './hint.html',\n styleUrls: ['./hint.scss'],\n host: {\n class: 'novo-hint',\n '[class.novo-field-hint-end]': 'align === \"end\"',\n '[attr.id]': 'id',\n // Remove align attribute to prevent it from interfering with layout.\n '[attr.align]': 'null',\n },\n standalone: false,\n})\nexport class NovoHintElement implements OnInit {\n /** Whether to align the hint label at the start or end of the line. */\n @Input() align: 'start' | 'end' = 'start';\n\n /** Unique ID for the hint. Used for the aria-describedby on the form field control. */\n @Input() id: string = `novo-hint-${nextUniqueId++}`;\n\n ngOnInit(): any {}\n}\n","<ng-content></ng-content>","// NG2\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n InjectionToken,\n Input,\n OnDestroy,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { fromEvent, Subject, Subscription } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\nimport { NovoLabel, HasOverlay, NOVO_OVERLAY_CONTAINER } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldControl } from './field-control';\nimport { NovoHintElement } from './hint/hint';\n\n@Directive({\n selector: '[novoPrefix]',\n standalone: false,\n})\nexport class NovoFieldPrefixDirective {}\n@Directive({\n selector: '[novoSuffix]',\n standalone: false,\n})\nexport class NovoFieldSuffixDirective {}\n\nconst NOVO_INPUT_UNDERLINED_TYPES = [\n 'text',\n 'date',\n 'time',\n 'datetime-local',\n 'password',\n 'email',\n 'tel',\n 'select',\n 'textarea',\n 'number',\n 'novo-chip-list',\n 'chip-list',\n];\nexport const NOVO_FORM_FIELD = new InjectionToken<NovoFieldElement>('NovoFormField');\n\n@Component({\n selector: 'novo-field',\n templateUrl: './field.html',\n styleUrls: ['./field.scss', './field-standard.scss', './field-fill.scss', './field-outline.scss', './field-list.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-field-layout-horizontal]': 'layout==\"horizontal\"',\n '[class.novo-field-layout-vertical]': 'layout==\"vertical\"',\n '[class.novo-field-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-field-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-field-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-field-appearance-list]': 'appearance == \"list\"',\n '[class.novo-field-appearance-underlined]': '_isUnderlinedInput()',\n '[class.novo-field-invalid]': '_control.errorState',\n '[class.novo-field-has-label]': '_hasLabel()',\n '[class.novo-field-no-label]': '!_hasLabel()',\n '[class.novo-field-disabled]': '_control.disabled',\n '[class.novo-field-autofilled]': '_control.autofilled',\n '[class.novo-focused]': '_control.focused',\n '[class.ng-untouched]': '_shouldForward(\"untouched\")',\n '[class.ng-touched]': '_shouldForward(\"touched\")',\n '[class.ng-pristine]': '_shouldForward(\"pristine\")',\n '[class.ng-dirty]': '_shouldForward(\"dirty\")',\n '[class.ng-valid]': '_shouldForward(\"valid\")',\n '[class.ng-invalid]': '_shouldForward(\"invalid\")',\n '[class.ng-pending]': '_shouldForward(\"pending\")',\n },\n providers: [{ provide: NOVO_FORM_FIELD, useExisting: NovoFieldElement }],\n standalone: false,\n})\nexport class NovoFieldElement implements AfterContentInit, OnDestroy {\n private _labelClicks = Subscription.EMPTY;\n\n @ViewChild('inputContainer') _inputContainerRef: ElementRef;\n\n @ContentChild(NovoLabel) _labelElement: NovoLabel;\n @ContentChildren(NovoHintElement) _hintElements: QueryList<NovoHintElement>;\n @ContentChildren(NovoErrorElement) _errorElements: QueryList<NovoErrorElement>;\n @ContentChildren(NovoFieldPrefixDirective) _prefixElements: QueryList<NovoFieldPrefixDirective>;\n @ContentChildren(NovoFieldSuffixDirective) _suffixElements: QueryList<NovoFieldSuffixDirective>;\n @ContentChildren(NOVO_OVERLAY_CONTAINER) _overlayElements: QueryList<HasOverlay>;\n\n @ContentChild(NovoFieldControl) _control: NovoFieldControl<any>;\n\n @Input() layout: 'horizontal' | 'vertical' = 'vertical';\n @Input() appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n /**\n * When this field has a picker element, express which element it should be parented to\n */\n @Input() customOverlayOrigin: ElementRef;\n\n @Input()\n width: string;\n\n private _destroyed = new Subject<void>();\n\n @Output() valueChanges: EventEmitter<any> = new EventEmitter();\n @Output() stateChanges: EventEmitter<void> = new EventEmitter();\n\n constructor(public _elementRef: ElementRef, private _changeDetectorRef: ChangeDetectorRef) {}\n /**\n * Gets an ElementRef for the element that a overlay attached to the form-field should be\n * positioned relative to.\n */\n getConnectedOverlayOrigin(): ElementRef {\n return this.customOverlayOrigin || this._inputContainerRef || this._elementRef;\n }\n\n ngAfterContentInit(): any {\n this._validateControlChild();\n\n const control = this._control;\n if (control.controlType) {\n this._elementRef.nativeElement.classList.add(`novo-field-type-${control.controlType}`);\n this._elementRef.nativeElement.setAttribute('data-control-type', control.controlType);\n }\n\n if (control.id) {\n this._elementRef.nativeElement.setAttribute('data-control-id', control.id);\n }\n\n if (control.ngControl?.name) {\n this._elementRef.nativeElement.setAttribute('data-control-key', control.ngControl.name);\n }\n\n // Subscribe to changes in the child control state in order to update the form field UI.\n control.stateChanges.pipe(startWith(null)).subscribe(() => {\n this.stateChanges.next();\n this._changeDetectorRef.markForCheck();\n });\n\n // Run change detection if the value changes.\n if (control.ngControl && control.ngControl.valueChanges) {\n control.ngControl.valueChanges.pipe(takeUntil(this._destroyed)).subscribe((v) => {\n this.valueChanges.next(v);\n this._changeDetectorRef.markForCheck();\n });\n }\n\n if (this._hasLabel()) {\n this._labelClicks = fromEvent(this._labelElement.nativeElement, 'click').subscribe(() => this._control.focus());\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n this._labelClicks.unsubscribe();\n }\n\n /** Throws an error if the form field's control is missing. */\n protected _validateControlChild() {\n if (!this._control) {\n throw new Error('Missing Novo Control');\n }\n }\n\n public blurEventIsInField(blurEvt: FocusEvent): boolean {\n return this._elementRef.nativeElement.contains(blurEvt.relatedTarget) || this._overlayElements.some(hasOverlay => hasOverlay.overlay?.isBlurRecipient(blurEvt));\n }\n\n @HostListener('click', ['$event'])\n _handleContainerClick(evt: MouseEvent) {\n this._control.onContainerClick(evt);\n }\n\n _isUnderlinedInput(): boolean {\n return NOVO_INPUT_UNDERLINED_TYPES.includes(this._control.controlType);\n }\n\n /** Determines whether to display hints or errors. */\n _getDisplayedMessages(): 'error' | 'hint' {\n return this._errorElements && this._errorElements.length > 0 && this._control.errorState ? 'error' : 'hint';\n }\n\n /** Determines whether a class from the NgControl should be forwarded to the host element. */\n _shouldForward(prop: keyof NgControl): boolean {\n const ngControl = this._control ? this._control.ngControl : null;\n return ngControl && ngControl[prop];\n }\n\n _hasLabel() {\n return !!this._labelElement;\n }\n}\n","<div class=\"novo-field-label\">\n <ng-content select=\"novo-label\"></ng-content>\n</div>\n<div class=\"novo-field-input\" [style.width]=\"width\" #inputContainer>\n <div class=\"novo-field-prefix\">\n <ng-content select=\"[novoPrefix]\"></ng-content>\n </div>\n <div class=\"novo-field-infix\">\n <ng-content></ng-content>\n </div>\n <div class=\"novo-field-suffix\">\n <ng-content select=\"[novoSuffix]\"></ng-content>\n </div>\n</div>\n<div class=\"novo-field-messages\" [ngSwitch]=\"_getDisplayedMessages()\">\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'error'\">\n <ng-content select=\"novo-error\"></ng-content>\n </div>\n <div class=\"novo-field-hint-wrapper\" *ngSwitchCase=\"'hint'\">\n <ng-content select=\"novo-hint\"></ng-content>\n <ng-content select=\"novo-hint[align=end]\"></ng-content>\n </div>\n</div>","// NG2\nimport { AfterContentInit, ChangeDetectionStrategy, Component, ContentChildren, HostBinding, Input, QueryList } from '@angular/core';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoFieldElement } from './field';\n\n@Component({\n selector: 'novo-fields',\n templateUrl: './fieldset.html',\n styleUrls: ['./fieldset.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'novo-field',\n '[class.novo-fieldset-appearance-standard]': 'appearance == \"standard\"',\n '[class.novo-fieldset-appearance-fill]': 'appearance == \"fill\"',\n '[class.novo-fieldset-appearance-outline]': 'appearance == \"outline\"',\n '[class.novo-fieldset-appearance-list]': 'appearance == \"list\"',\n },\n standalone: false,\n})\nexport class NovoFieldsElement implements AfterContentInit {\n @ContentChildren(NovoFieldElement)\n _fields: QueryList<NovoFieldElement>;\n\n _layout: 'horizontal' | 'vertical' = 'horizontal';\n @Input() get layout(): any {\n return this._layout;\n }\n set layout(value) {\n if (this._layout !== value) {\n this._layout = value;\n this._updateFieldLayout();\n }\n }\n\n _appearance: 'standard' | 'outline' | 'fill' | 'list' = 'standard';\n @Input() get appearance(): any {\n return this._appearance;\n }\n set appearance(value) {\n if (this._appearance !== value) {\n this._appearance = value;\n this._updateFieldAppearance();\n }\n }\n\n @HostBinding('class.full-width')\n @Input()\n @BooleanInput()\n fullWidth: boolean = false;\n\n ngAfterContentInit(): any {\n this._updateFieldLayout();\n this._updateFieldAppearance();\n }\n\n private _updateFieldLayout(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.layout = this.layout;\n });\n }\n }\n\n private _updateFieldAppearance(): void {\n if (this._fields) {\n this._fields.forEach((field) => {\n field.appearance = this.appearance;\n });\n }\n }\n}\n","<ng-content></ng-content>","import { EventEmitter, InjectionToken } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nexport const NOVO_INPUT_FORMAT = new InjectionToken<NovoInputFormat>('NovoInputFormat');\n\nexport interface NovoInputFormat<T = any> extends ControlValueAccessor {\n valueChange: EventEmitter<any>;\n formatValue(value: T): string;\n}\n\nexport enum DATE_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n YEAR_MONTH_DAY = 'yyyy-mm-dd',\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateFormat]',\n host: {\n class: 'novo-date-format',\n },\n providers: [DATEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateFormatDirective }],\n standalone: false,\n})\nexport class NovoDateFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormatService: DateFormatService) {\n super();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.dateFormatService.dateFormatAsImaskPattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString()}),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n if (!value) {\n return '';\n }\n return DateUtil.format(DateUtil.parse(value, { userDateFormat: this.labels.dateFormatString()}), pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString().slice(0, 10);\n }\n return null;\n }\n\n formatYearMonthDay(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'YYYY-MM-DD');\n }\n return null;\n }\n\n formatValue(value: any, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n const dateFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.dateFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n case DATE_FORMATS.YEAR_MONTH_DAY:\n formatted = this.formatYearMonthDay(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n}\n","import { Directive, EventEmitter, forwardRef, Input } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT } from './base-format';\n\nexport const DATERANGEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateRangeFormatDirective),\n multi: true,\n};\n\ntype DateRange = {\n startDate: Date;\n endDate: Date;\n};\n\n@Directive({\n selector: 'input[dateRangeFormat]',\n host: {\n class: 'novo-date-range-format',\n },\n providers: [DATERANGEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateRangeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateRangeFormatDirective extends IMaskDirective<any> {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() dateRangeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.unmask = false;\n this.imask = {\n mask: `${this.dateFormat.dateFormatAsImaskPattern} - ${this.dateFormat.dateFormatAsImaskPattern}`,\n overwrite: true,\n autofix: true,\n lazy: false,\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n },\n };\n }\n\n normalize(value: string | Date, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n if (startDate && isValid(startDate) && endDate && isValid(endDate)) {\n const startIso = startDate.toISOString().slice(0, 10);\n const endIso = endDate.toISOString().slice(0, 10);\n return `${startIso}/${endIso}`;\n }\n return null;\n }\n\n formatValue(value: DateRange): string {\n if (!value) {\n return '';\n }\n const { startDate, endDate } = value;\n return `${this.formatDate(startDate)} - ${this.formatDate(endDate)}`;\n }\n\n formatDate(source: Date | string) {\n const dateRangeFormat = this.labels.dateFormatString().toUpperCase();\n const date = DateUtil.parse(source);\n if (isValid(date)) {\n return DateUtil.format(date, dateRangeFormat);\n }\n return this.normalize(source);\n }\n\n writeValue(value: any) {\n if (this['_initialValue'] && value === this['_initialValue']) {\n // if this call is coming from the super class, skip through.\n // If we ever wanted to reduce the need for this hack/workaround, we could refactor\n // IMaskDirective to exist as a child portion of DateRangeFormatDirective.\n super.writeValue(value);\n return;\n }\n const formattedValue = this.formatValue(value);\n if (formattedValue !== this.maskValue) {\n super.writeValue(this.formatValue(value));\n this.onChange(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (input: any) => {\n if (this.validate(input)) {\n const dates = this.extractDatesFromInput(input);\n let formatted: DateRange | string = dates;\n switch (this.dateRangeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(dates);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(dates);\n break;\n default:\n formatted = dates;\n break;\n }\n this.valueChange.emit(dates);\n fn(formatted);\n }\n };\n }\n\n extractDatesFromInput(value) {\n const [startStr, endStr] = value.split(' - ');\n const startDate = DateUtil.parse(startStr, { userDateFormat: this.labels.dateFormatString()});\n const endDate = DateUtil.parse(endStr, { userDateFormat: this.labels.dateFormatString()});\n return { startDate, endDate };\n }\n\n validate(dateStr: string) {\n const { startDate, endDate } = this.extractDatesFromInput(dateStr);\n return isValid(startDate) && isValid(endDate);\n }\n}\n","import { Directive, EventEmitter, Input, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { DateFormatService, NovoLabelService } from 'novo-elements/services';\nimport { DateParseOptions, DateUtil, Key } from 'novo-elements/utils';\nimport { DATE_FORMATS, NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const DATETIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoDateTimeFormatDirective),\n multi: true,\n};\n\n@Directive({\n selector: 'input[dateTimeFormat]',\n host: {\n class: 'novo-date-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [DATETIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoDateTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoDateTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() dateTimeFormat: DATE_FORMATS = DATE_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private dateFormat: DateFormatService) {\n super();\n this.initFormatOptions();\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n let pattern = `${this.dateFormat.dateFormatAsImaskPattern}, HH:mm`;\n if (!this.military) {\n pattern += ' aa';\n }\n this.imask = {\n mask: Date,\n pattern,\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1900, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (date) => this.formatValue(date, { userDateFormat: this.labels.dateFormatString() }),\n parse: (str) => DateUtil.parse(str, { userDateFormat: this.labels.dateFormatString().toUpperCase() }),\n blocks: {\n d: {\n mask: MaskedRange,\n placeholderChar: 'D',\n from: 1,\n to: 31,\n maxLength: 2,\n },\n m: {\n mask: MaskedRange,\n placeholderChar: 'M',\n from: 1,\n to: 12,\n maxLength: 2,\n },\n Y: {\n mask: MaskedRange,\n placeholderChar: 'Y',\n from: 1900,\n to: 9999,\n },\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n ss: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'dateFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour = dateTime[1].slice(0, 2);\n if ((this.military && Number(dateTime[1][0]) > 2) || (!this.military && Number(dateTime[1][0]) > 1)) {\n event.preventDefault();\n const value = `0${dateTime[1]}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const dateTime = text.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n if (!this.military) {\n const input = dateTime[1].substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${dateTime[0]}, ${dateTime[1].slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const dateTime = input.value.split(', ');\n const hour: string = dateTime[1].slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === dateTime[1].length) {\n (event.target as HTMLInputElement).value = `${dateTime[1].slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(15, 15);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `${dateTime[0]}, 01:${dateTime[1].slice(3, dateTime[1].length)}`;\n input.setSelectionRange(14, 14);\n }\n }\n\n normalize(value: string, options?: DateParseOptions) {\n const pattern = this.labels.dateFormatString().toUpperCase();\n return DateUtil.format(value ? DateUtil.parse(value, options) : null, pattern);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return date.toISOString();\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n formatValue(value: Date | string, options?: DateParseOptions): string {\n if (value == null) {\n return '';\n }\n // Use `parse` because it keeps dates in locale\n const date = DateUtil.parse(value, options);\n if (isValid(date)) {\n const dateFormat = `${this.labels.dateFormatString().toUpperCase()}, ${this.military ? 'HH:mm' : 'hh:mm A'}`;\n return DateUtil.format(date, dateFormat);\n }\n return this.normalize(value as string, options);\n }\n\n writeValue(value: any) {\n const initialValue = this['_initialValue'];\n if (initialValue != null && value === initialValue) {\n // This value has already been formatted from the first call to writeValue, simply use it.\n super.writeValue(initialValue);\n } else {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n }\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (date: Date) => {\n let formatted: Date | string;\n switch (this.dateTimeFormat) {\n case DATE_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case DATE_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n\n get initialValue(): any {\n return this.maskValue;\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IMaskDirective } from 'angular-imask';\nimport { isValid } from 'date-fns';\nimport { MaskedEnum, MaskedRange } from 'imask';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Key } from 'novo-elements/utils';\nimport { NOVO_INPUT_FORMAT, NovoInputFormat } from './base-format';\n\nexport const TIMEFORMAT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NovoTimeFormatDirective),\n multi: true,\n};\n\nexport enum TIME_FORMATS {\n DATE = 'date',\n ISO8601 = 'iso8601',\n STRING = 'string',\n}\n\n@Directive({\n selector: 'input[timeFormat]',\n host: {\n class: 'novo-time-format',\n '(input)': '_checkInput($event)',\n '(blur)': '_handleBlur($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n providers: [TIMEFORMAT_VALUE_ACCESSOR, { provide: NOVO_INPUT_FORMAT, useExisting: NovoTimeFormatDirective }],\n standalone: false,\n})\nexport class NovoTimeFormatDirective extends IMaskDirective<any> implements NovoInputFormat, AfterViewInit, OnChanges {\n valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input() military: boolean = false;\n @Input() timeFormat: TIME_FORMATS = TIME_FORMATS.DATE;\n\n constructor(private labels: NovoLabelService, private cdr: ChangeDetectorRef) {\n super();\n this.initFormatOptions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (Object.keys(changes).some((key) => ['military', 'timeFormat'].includes(key))) {\n this.initFormatOptions();\n }\n }\n\n initFormatOptions() {\n const amFormat = this.labels.timeFormatAM.toUpperCase();\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n this.unmask = 'typed' as unknown as false; // typing is to work around angular-imask bug\n this.imask = {\n mask: Date,\n pattern: this.military ? 'HH:mm' : 'hh:mm aa',\n overwrite: true,\n autofix: true,\n lazy: false,\n min: new Date(1970, 0, 1),\n max: new Date(2100, 0, 1),\n prepare: (str) => str.toUpperCase(),\n format: (value) => this.formatValue(value),\n parse: (str) => {\n const time = this.convertTime12to24(str);\n return DateUtil.parse(`${DateUtil.format(Date.now(), 'YYYY-MM-DD')}T${time}`);\n },\n blocks: {\n HH: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 23,\n },\n hh: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 1,\n to: 12,\n },\n mm: {\n mask: MaskedRange,\n placeholderChar: '-',\n maxLength: 2,\n from: 0,\n to: 59,\n },\n aa: {\n mask: MaskedEnum,\n placeholderChar: '-',\n enum: ['AM', 'PM', 'am', 'pm', amFormat, pmFormat],\n },\n },\n };\n }\n\n _checkInput(event: InputEvent): void {\n if (document.activeElement === event.target) {\n const text = (event.target as HTMLInputElement).value;\n const hour = text.slice(0, 2);\n if ((this.military && Number(text[0]) > 2) || (!this.military && Number(text[0]) > 1)) {\n event.preventDefault();\n const value = `0${text}`;\n (event.target as HTMLInputElement).value = value;\n }\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} ${timePeriod}`;\n }\n if ((event.target as HTMLInputElement).selectionStart >= 3 && this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${(event.target as HTMLInputElement).value.slice(\n 3,\n (event.target as HTMLInputElement).value.length,\n )}`;\n }\n }\n }\n }\n\n _handleBlur(event: FocusEvent): void {\n const text = (event.target as HTMLInputElement).value;\n const hour: string = text.slice(0, 2);\n if (!this.military) {\n const input = text.substr(5, 4).replace(/\\-/g, '').trim().slice(0, 2);\n const timePeriod = this.imask.blocks.aa.enum.find((it) => it[0] === input[0]);\n if (this.hourOneFormatRequired(hour)) {\n (event.target as HTMLInputElement).value = `01:${text.slice(3, text.length)}`;\n }\n if (!timePeriod) {\n (event.target as HTMLInputElement).value = `${text.slice(0, 5)} --`;\n }\n }\n }\n\n _handleKeydown(event: KeyboardEvent): void {\n const input = event.target as HTMLInputElement;\n const hour: string = input.value.slice(0, 2);\n\n if (event.key === Key.Backspace && input.selectionStart === input.value.length) {\n (event.target as HTMLInputElement).value = `${input.value.slice(0, 5)} --`;\n } else if (event.key === Key.Tab && input.selectionStart <= 2 && this.hourOneFormatRequired(hour)) {\n event.preventDefault();\n event.stopPropagation();\n event.stopImmediatePropagation();\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(3, 3);\n } else if (event.key === Key.ArrowRight && input.selectionStart >= 2 && this.hourOneFormatRequired(hour)) {\n input.value = `01:${input.value.slice(3, input.value.length)}`;\n input.setSelectionRange(2, 2);\n }\n }\n\n normalize(value: string) {\n if (this.military) {\n return this.convertTime12to24(value);\n }\n return this.convertTime24to12(value);\n }\n\n formatValue(value: any): string {\n const date = DateUtil.parse(value);\n if (isValid(date)) {\n const pattern = this.military ? 'HH:mm' : 'hh:mm A';\n return DateUtil.format(date, pattern);\n }\n return this.normalize(value);\n }\n\n formatAsIso(date: Date): string {\n if (date && isValid(date)) {\n return DateUtil.format(date, 'HH:mm');\n }\n return null;\n }\n\n convertTime12to24(time12h: string) {\n const pmFormat = this.labels.timeFormatPM.toUpperCase();\n const [time, meridian] = time12h.split(' ');\n // eslint-disable-next-line prefer-const\n let [hours, minutes] = time.split(':');\n if (hours === '12') {\n hours = '00';\n }\n if (['PM', pmFormat].includes(meridian)) {\n hours = `${parseInt(hours, 10) + 12}`.padStart(2, '0');\n }\n return `${hours}:${minutes}`;\n }\n\n convertTime24to12(time24h: string) {\n if (time24h.length === 5) {\n const date = DateUtil.parse(`2020-01-01T${time24h}`);\n return DateUtil.format(date, 'hh:mm A');\n }\n return time24h;\n }\n\n writeValue(value: any) {\n super.writeValue(this.formatValue(value));\n this.valueChange.emit(value);\n }\n\n registerOnChange(fn: (date: any) => void): void {\n this.onChange = (date: any) => {\n let formatted = date;\n switch (this.timeFormat) {\n case TIME_FORMATS.ISO8601:\n formatted = this.formatAsIso(date);\n break;\n case TIME_FORMATS.STRING:\n formatted = this.formatValue(date);\n break;\n default:\n formatted = date;\n break;\n }\n this.valueChange.emit(date);\n fn(formatted);\n };\n }\n\n hourOneFormatRequired(hourInput: string): boolean {\n return hourInput === '-1' || hourInput === '1-';\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { getSupportedInputTypes, Platform } from '@angular/cdk/platform';\nimport { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n AfterViewInit,\n Directive,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Inject,\n InjectionToken,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n Self,\n} from '@angular/core';\nimport { FormGroupDirective, NgControl, NgForm } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { NovoFieldControl } from './field-control';\n\n/**\n * This token is used to inject the object whose value should be set into `NovoInput`. If none is\n * provided, the native `HTMLInputElement` is used. Directives like `MatDatepickerInput` can provide\n * themselves for this token, in order to make `NovoInput` delegate the getting and setting of the\n * value to them.\n */\nexport const NOVO_INPUT_VALUE_ACCESSOR = new InjectionToken<{ value: any }>('NOVO_INPUT_VALUE_ACCESSOR');\n\n// Invalid input type. Using one of these will throw an NovoInputUnsupportedTypeError.\nconst NOVO_INPUT_INVALID_TYPES = ['button', 'file', 'hidden', 'image', 'radio', 'reset', 'submit'];\n\nlet nextUniqueId = 0;\n\n// Boilerplate for applying mixins to NovoInput.\nclass NovoInputBase {\n constructor(\n public _parentForm: NgForm,\n public _parentFormGroup: FormGroupDirective,\n /** @docs-private */\n public ngControl: NgControl,\n ) {}\n}\n\n/** Directive that allows a native input to work inside a `NovoField`. */\n@Directive({\n selector: 'input[novoInput], textarea[novoInput], select[novoInput]',\n host: {\n class: 'novo-input-element',\n '[attr.id]': 'id',\n '[attr.placeholder]': 'placeholder',\n '[disabled]': 'disabled',\n '[required]': 'required',\n '[attr.readonly]': 'readonly && !_isNativeSelect || null',\n '[attr.aria-invalid]': 'errorState',\n '[attr.aria-required]': 'required.toString()',\n '[attr.autocomplete]': \"'off'\",\n },\n providers: [{ provide: NovoFieldControl, useExisting: NovoInput }],\n standalone: false,\n})\nexport class NovoInput extends NovoInputBase implements NovoFieldControl<any>, OnChanges, OnDestroy, AfterViewInit, DoCheck {\n protected _uid = `novo-input-${nextUniqueId++}`;\n protected _previousNativeValue: any;\n private _inputValueAccessor: { value: any };\n /** The aria-describedby attribute on the input for improved a11y. */\n @HostBinding('attr.aria-describedby') _ariaDescribedby: string;\n\n /** Whether the component is being rendered on the server. */\n readonly _isServer: boolean;\n\n /** Whether the component is a native html select. */\n readonly _isNativeSelect: boolean;\n\n /** Whether the component is a textarea. */\n readonly _isTextarea: boolean;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n focused: boolean = false;\n\n get errorState(): boolean {\n return this.ngControl && this.ngControl.invalid && (this.ngControl.dirty || this.ngControl.touched) || false;\n }\n\n /** @docs-private Implemented as part of NovoFieldControl. */\n lastKeyValue: string = null;\n /** @docs-private Implemented as part of NovoFieldControl.*/\n lastCaretPosition: number | null;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n readonly stateChanges: Subject<void> = new Subject<void>();\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n controlType: string = 'novo-input';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n autofilled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get disabled(): boolean {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n\n // Browsers may not fire the blur event if the input is disabled too quickly.\n // Reset from here to ensure that the element doesn't become stuck.\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n protected _disabled = false;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get id(): string {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n protected _id: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input() placeholder: string;\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get required(): boolean {\n return this._required;\n }\n set required(value: boolean) {\n this._required = coerceBooleanProperty(value);\n }\n protected _required = false;\n\n /** Input type of the element. */\n @Input()\n get type(): string {\n return this._type;\n }\n set type(value: string) {\n this._type = value || 'text';\n this._validateType();\n\n // When using Angular inputs, developers are no longer able to set the properties on the native\n // input element. To ensure that bindings for `type` work, we need to sync the setter\n // with the native property. Textarea elements don't support the type property or attribute.\n if (!this._isTextarea && getSupportedInputTypes().has(this._type)) {\n (this._elementRef.nativeElement as HTMLInputElement).type = this._type;\n }\n }\n protected _type = 'text';\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n @Input()\n get value(): string {\n return this._inputValueAccessor.value;\n }\n set value(value: string) {\n if (value !== this.value) {\n this._inputValueAccessor.value = value;\n this.stateChanges.next();\n }\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n private _readonly = false;\n\n protected _neverEmptyInputTypes = ['date', 'datetime', 'datetime-local', 'month', 'time', 'week'].filter((t) =>\n getSupportedInputTypes().has(t),\n );\n\n constructor(\n protected _elementRef: ElementRef<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>,\n protected _platform: Platform,\n /** @docs-private */\n @Optional() @Self() public ngControl: NgControl,\n @Optional() _parentForm: NgForm,\n @Optional() _parentFormGroup: FormGroupDirective,\n @Optional() @Self() @Inject(NOVO_INPUT_VALUE_ACCESSOR) inputValueAccessor: any,\n private _autofillMonitor: AutofillMonitor,\n ngZone: NgZone,\n ) {\n super(_parentForm, _parentFormGroup, ngControl);\n\n const element = this._elementRef.nativeElement;\n const nodeName = element.nodeName.toLowerCase();\n\n // If no input value accessor was explicitly specified, use the element as the input value\n // accessor.\n this._inputValueAccessor = inputValueAccessor || element;\n\n this._previousNativeValue = this.value;\n\n // Force setter to be called in case id was not specified.\n this.id = this.id;\n\n // On some versions of iOS the caret gets stuck in the wrong place when holding down the delete\n // key. In order to get around this we need to \"jiggle\" the caret loose. Since this bug only\n // exists on iOS, we only bother to install the listener on iOS.\n if (_platform.IOS) {\n ngZone.runOutsideAngular(() => {\n _elementRef.nativeElement.addEventListener('keyup', (event: Event) => {\n const el = event.target as HTMLInputElement;\n if (!el.value && !el.selectionStart && !el.selectionEnd) {\n // Note: Just setting `0, 0` doesn't fix the issue. Setting\n // `1, 1` fixes it for the first time that you type text and\n // then hold delete. Toggling to `1, 1` and then back to\n // `0, 0` seems to completely fix it.\n el.setSelectionRange(1, 1);\n el.setSelectionRange(0, 0);\n }\n });\n });\n }\n\n this._isServer = !this._platform.isBrowser;\n this._isNativeSelect = nodeName === 'select';\n this._isTextarea = nodeName === 'textarea';\n\n this.controlType = (this._elementRef.nativeElement as HTMLInputElement).type;\n if (this._isNativeSelect) {\n this.controlType = (element as HTMLSelectElement).multiple ? 'select-multiple' : 'select';\n } else if (this._isTextarea) {\n this.controlType = 'textarea';\n }\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._autofillMonitor.monitor(this._elementRef.nativeElement).subscribe((event) => {\n this.autofilled = event.isAutofilled;\n this.stateChanges.next();\n });\n }\n }\n\n ngOnChanges() {\n this.stateChanges.next();\n }\n\n ngOnDestroy() {\n this.stateChanges.complete();\n\n if (this._platform.isBrowser) {\n this._autofillMonitor.stopMonitoring(this._elementRef.nativeElement);\n }\n }\n\n ngDoCheck() {\n // We need to dirty-check the native element's value, because there are some cases where\n // we won't be notified when it changes (e.g. the consumer isn't using forms or they're\n // updating the value using `emitEvent: false`).\n this._dirtyCheckNativeValue();\n }\n\n /** Focuses the input. */\n focus(options?: FocusOptions): void {\n this._elementRef.nativeElement.focus(options);\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('focus', ['true'])\n @HostListener('blur', ['false'])\n _focusChanged(isFocused: boolean) {\n if (isFocused !== this.focused && (!this.readonly || !isFocused)) {\n this.focused = isFocused;\n this.stateChanges.next();\n }\n }\n\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n @HostListener('input', ['$event'])\n _onInput(event: InputEvent) {\n // Listening to the input event wouldn't be necessary when the input is using the\n // FormsModule or ReactiveFormsModule, because Angular forms also listens to input events.\n this.lastKeyValue = event.data;\n if (this._isTextarea) {\n this.lastCaretPosition = (this._elementRef.nativeElement as HTMLTextAreaElement).selectionStart;\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n protected _dirtyCheckNativeValue() {\n const newValue = this._elementRef.nativeElement.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this.stateChanges.next();\n }\n }\n\n /** Make sure the input is a supported type. */\n protected _validateType() {\n if (NOVO_INPUT_INVALID_TYPES.indexOf(this._type) > -1) {\n throw new Error(`Invalid Input Type: ${this._type}`);\n }\n }\n\n /** Checks whether the input type is one of the types that are never empty. */\n protected _isNeverEmpty() {\n return this._neverEmptyInputTypes.indexOf(this._type) > -1;\n }\n\n /** Checks whether the input is invalid based on the native validation. */\n protected _isBadInput() {\n // The `validity` property won't be present on platform-server.\n const validity = (this._elementRef.nativeElement as HTMLInputElement).validity;\n return validity && validity.badInput;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get empty(): boolean {\n return !this._isNeverEmpty() && !this._elementRef.nativeElement.value && !this._isBadInput() && !this.autofilled;\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n get shouldLabelFloat(): boolean {\n if (this._isNativeSelect) {\n // For a single-selection `<select>`, the label should float when the selected option has\n // a non-empty display value. For a `<select multiple>`, the label *always* floats to avoid\n // overlapping the label with the options.\n const selectElement = this._elementRef.nativeElement as HTMLSelectElement;\n const firstOption: HTMLOptionElement | undefined = selectElement.options[0];\n\n // On most browsers the `selectedIndex` will always be 0, however on IE and Edge it'll be\n // -1 if the `value` is set to something, that isn't in the list of options, at a later point.\n return (\n this.focused || selectElement.multiple || !this.empty || !!(selectElement.selectedIndex > -1 && firstOption && firstOption.label)\n );\n } else {\n return this.focused || !this.empty;\n }\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n setDescribedByIds(ids: string[]) {\n this._ariaDescribedby = ids.join(' ');\n }\n\n /**\n * Implemented as part of NovoFieldControl.\n * @docs-private\n */\n onContainerClick() {\n // Do not re-focus the input element if the element is already focused. Otherwise it can happen\n // that someone clicks on a time input and the cursor resets to the \"hours\" field while the\n // \"minutes\" field was actually clicked. See: https://github.com/angular/components/issues/12849\n if (!this.focused) {\n this.focus();\n }\n }\n\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n static ngAcceptInputType_required: BooleanInput;\n\n // Accept `any` to avoid conflicts with other directives on `<input>` that may\n // accept different types.\n static ngAcceptInputType_value: any;\n @Output() onSelect = new EventEmitter<unknown>();\n}\n","import { Directive, ElementRef, Inject, Input, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { NovoInputFormat, NOVO_INPUT_FORMAT } from './formats/base-format';\n\n/** Directive used to connect an input to a MatDatepicker. */\n@Directive({\n selector: 'input[picker]',\n host: {\n class: 'novo-has-picker',\n '[attr.autocomplete]': 'autocompleteAttribute',\n },\n standalone: false,\n})\nexport class NovoPickerDirective {\n /** The datepicker that this input is associated with. */\n @Input()\n set picker(picker: ControlValueAccessor) {\n if (picker) {\n this._picker = picker;\n picker.registerOnChange((value) => this.updateValue(value));\n }\n }\n _picker: ControlValueAccessor;\n /**\n * `autocomplete` attribute to be set on the input element.\n * @docs-private\n */\n @Input('autocomplete') autocompleteAttribute: string = 'off';\n\n constructor(\n private _elementRef: ElementRef<HTMLInputElement>,\n @Optional() @Self() @Inject(NOVO_INPUT_FORMAT) private formatter: NovoInputFormat<any>,\n ) {\n if (!this.formatter) {\n console.warn('Picker directive is missing required formatter');\n }\n this.formatter?.valueChange.subscribe((value) => {\n this.updatePicker(value);\n });\n }\n\n updateValue(value: any) {\n this.formatter.writeValue(value);\n }\n\n updatePicker(value: any) {\n if (this._picker) {\n this._picker.writeValue(value);\n }\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n AfterContentInit,\n AfterViewInit,\n Attribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { BooleanInput } from 'novo-elements/utils';\nimport { NovoButtonElement } from 'novo-elements/elements/button';\nimport { NovoOverlayTemplateComponent } from 'novo-elements/elements/common';\nimport { NovoFieldElement, NOVO_FORM_FIELD } from '../field';\n\n@Component({\n selector: 'novo-picker-toggle',\n templateUrl: 'picker-toggle.component.html',\n host: {\n class: 'novo-picker-toggle',\n // Always set the tabindex to -1 so that it doesn't overlap with any custom tabindex the\n // consumer may have provided, while still being able to receive focus.\n '[attr.tabindex]': 'disabled ? null : -1',\n '[class.novo-toggle-active]': 'picker && picker.opened',\n '[class.novo-accent]': 'picker && picker.color === \"accent\"',\n '[class.novo-warn]': 'picker && picker.color === \"warn\"',\n '(focus)': '_button.focus()',\n },\n exportAs: 'novoPickerToggle',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoPickerToggleElement<T = any> implements AfterContentInit, AfterViewInit, OnChanges, OnDestroy {\n private _stateChanges = Subscription.EMPTY;\n private _onDestroy = new Subject<void>();\n\n /** Datepicker instance that the button will toggle. */\n @Input('for') picker: T;\n\n @Input() icon: string;\n\n /** Tabindex for the toggle. */\n @Input() tabIndex: number | null;\n\n /** Screenreader label for the button. */\n @Input('aria-label') ariaLabel: string;\n\n /** Determines whether the overlay is triggered on input focus or solely button click. */\n @Input()\n @BooleanInput()\n triggerOnFocus: boolean = false;\n\n /** An id to select the correct overlay.*/\n @Input() overlayId: string;\n\n /** Width to pass to overlay.*/\n @Input() width: string;\n\n /** Whether the toggle button is disabled. */\n @Input()\n get disabled(): boolean {\n if (this._disabled === undefined && this.picker) {\n return (this.picker as any).disabled;\n }\n\n return !!this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = coerceBooleanProperty(value);\n }\n private _disabled: boolean;\n\n /** Underlying button element. */\n @ViewChild('button') _button: NovoButtonElement;\n\n /** Element for the panel containing the autocomplete options. */\n @ViewChild(NovoOverlayTemplateComponent)\n overlay: NovoOverlayTemplateComponent;\n\n element: ElementRef;\n\n constructor(\n private _elementRef: ElementRef,\n private cdr: ChangeDetectorRef,\n @Attribute('tabindex') defaultTabIndex: string,\n @Optional() @Inject(NOVO_FORM_FIELD) private _formField: NovoFieldElement,\n ) {\n const parsedTabIndex = Number(defaultTabIndex);\n this.tabIndex = parsedTabIndex || parsedTabIndex === 0 ? parsedTabIndex : null;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.picker) {\n this._watchStateChanges();\n }\n }\n\n ngOnDestroy() {\n this._stateChanges.unsubscribe();\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n ngAfterContentInit() {\n this._watchStateChanges();\n }\n\n ngAfterViewInit() {\n this.element = this._formField.getConnectedOverlayOrigin() || this._elementRef;\n }\n\n checkPanel() {\n if (this.triggerOnFocus && this._formField._control.focused) {\n this.openPanel();\n }\n }\n\n togglePanel(event?: Event) {\n this.cdr.detectChanges();\n this.overlay.parent = this.element;\n if (!this.overlay.panelOpen) {\n this.openPanel(event);\n } else {\n this.closePanel(event);\n }\n }\n\n /** BEGIN: Convenient Panel Methods. */\n openPanel(event?: Event): void {\n if (!this.overlay.panelOpen) {\n this.overlay.parent = this.element;\n this.overlay.openPanel();\n }\n }\n\n closePanel(event?: Event): void {\n this.overlay.closePanel();\n }\n\n get panelOpen(): boolean {\n return this.overlay && this.overlay.panelOpen;\n }\n\n private _watchStateChanges() {\n this._formField._control?.stateChanges.pipe(takeUntil(this._onDestroy)).subscribe(() => {\n this.checkPanel();\n });\n }\n}\n","<novo-button\n #button\n theme=\"icon\"\n [icon]=\"icon\"\n [attr.aria-haspopup]=\"'dialog'\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n (click)=\"togglePanel($event)\"></novo-button>\n\n<novo-overlay-template [width]=\"width\" [parent]=\"element\" position=\"above-below\">\n <ng-content></ng-content>\n</novo-overlay-template>","// NG2\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n// APP\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCommonModule, NovoOptionModule, NovoOverlayModule } from 'novo-elements/elements/common';\nimport { NovoErrorElement } from './error/error';\nimport { NovoFieldElement, NovoFieldPrefixDirective, NovoFieldSuffixDirective } from './field';\nimport { NovoFieldsElement } from './fieldset';\nimport { NovoDateFormatDirective } from './formats/date-format';\nimport { NovoDateRangeFormatDirective } from './formats/date-range-format';\nimport { NovoDateTimeFormatDirective } from './formats/date-time-format';\nimport { NovoTimeFormatDirective } from './formats/time-format';\nimport { NovoHintElement } from './hint/hint';\nimport { NovoInput } from './input';\nimport { NovoPickerDirective } from './picker.directive';\nimport { NovoPickerToggleElement } from './toggle/picker-toggle.component';\n\n@NgModule({\n imports: [CommonModule, NovoButtonModule, NovoOverlayModule, NovoOptionModule, NovoCommonModule],\n declarations: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateTimeFormatDirective,\n NovoDateRangeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n exports: [\n NovoFieldElement,\n NovoHintElement,\n NovoErrorElement,\n NovoInput,\n NovoFieldPrefixDirective,\n NovoFieldSuffixDirective,\n NovoFieldsElement,\n NovoTimeFormatDirective,\n NovoDateFormatDirective,\n NovoDateRangeFormatDirective,\n NovoDateTimeFormatDirective,\n NovoPickerToggleElement,\n NovoPickerDirective,\n ],\n})\nexport class NovoFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["nextUniqueId","i1","__decorate","i2"],"mappings":"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"}
@@ -186,7 +186,7 @@ class PopOverContent {
186
186
  <div *ngIf="!htmlContent" class="popover-content-text">{{ content }}</div>
187
187
  </div>
188
188
  </div>
189
- `, isInline: true, styles: [":host .popover{position:absolute;top:0;left:0;z-index:1000;display:none;width:40rem;padding:2rem;background-color:var(--background-bright, #ffffff);color:var(--text-main, #3d464d);background-clip:padding-box;box-shadow:0 1px 2px #00000026}:host .popover.top{margin-top:-1rem}:host .popover.top.virtual-area{bottom:-1.1rem}:host .popover.right{margin-left:1rem}:host .popover.right.virtual-area{left:-1.1rem}:host .popover.bottom{margin-top:1rem}:host .popover.bottom.virtual-area{top:-1.1rem}:host .popover.left{margin-left:-1rem}:host .popover.left.virtual-area{right:-1.1rem}:host .popover .virtual-area{height:1.1rem;width:100%;position:absolute}:host .popover.top>.arrow{margin-left:-9px;border-bottom-width:0;border-top-color:#0000001a;bottom:-9px}:host .popover.top>.arrow:before{content:\" \";bottom:1px;margin-left:-1rem;border-bottom-width:0;border-top-color:var(--background-bright, #ffffff)}:host .popover.top>.arrow.center{left:50%}:host .popover.top>.arrow.left{left:91%}:host .popover.top>.arrow.right{left:9%}:host .popover.right>.arrow{left:-9px;margin-top:-9px;border-left-width:0;border-right-color:#0000001a}:host .popover.right>.arrow:before{content:\" \";left:1px;bottom:-1rem;border-left-width:0;border-right-color:var(--background-bright, #ffffff)}:host .popover.right>.arrow.center{top:50%}:host .popover.right>.arrow.top{top:91%}:host .popover.right>.arrow.bottom{top:9%}:host .popover.bottom>.arrow{margin-left:-9px;border-top-width:0;border-bottom-color:#0000001a;top:-9px}:host .popover.bottom>.arrow:before{content:\" \";top:1px;margin-left:-1rem;border-top-width:0;border-bottom-color:var(--background-bright, #ffffff)}:host .popover.bottom>.arrow.center{left:50%}:host .popover.bottom>.arrow.left{left:91%}:host .popover.bottom>.arrow.right{left:9%}:host .popover.left>.arrow{right:-9px;margin-top:-9px;border-right-width:0;border-left-color:#0000001a}:host .popover.left>.arrow:before{content:\" \";right:1px;border-right-width:0;border-left-color:var(--background-bright, #ffffff);bottom:-1rem}:host .popover.left>.arrow.center{top:50%}:host .popover.left>.arrow.top{top:91%}:host .popover.left>.arrow.bottom{top:9%}:host .popover>.arrow{border-width:9px}:host .popover>.arrow,:host .popover>.arrow:before{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}:host .popover>.arrow:before{border-width:1rem;content:\"\"}:host .popover-title{font-weight:500;line-height:1.5;color:var(--text-main, #3d464d);white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-title);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;margin-bottom:1rem}:host .popover-title.text-capitalize{text-transform:capitalize}:host .popover-title.text-uppercase{text-transform:uppercase}:host .popover-title.text-nowrap{white-space:nowrap}:host .popover-title.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-title.text-size-default{font-size:inherit}:host .popover-title.text-size-body{font-size:1.3rem}:host .popover-title.text-size-xs{font-size:1rem}:host .popover-title.text-size-sm{font-size:1.2rem}:host .popover-title.text-size-md{font-size:1.3rem}:host .popover-title.text-size-lg{font-size:1.6rem}:host .popover-title.text-size-xl{font-size:2rem}:host .popover-title.text-size-2xl{font-size:2.6rem}:host .popover-title.text-size-3xl{font-size:3.2rem}:host .popover-title.text-size-smaller{font-size:.8em}:host .popover-title.text-size-larger{font-size:1.2em}:host .popover-title.text-color-black{color:#000}:host .popover-title.text-color-white{color:#fff}:host .popover-title.text-color-gray{color:#9e9e9e}:host .popover-title.text-color-grey{color:#9e9e9e}:host .popover-title.text-color-offWhite{color:#f7f7f7}:host .popover-title.text-color-bright{color:#f7f7f7}:host .popover-title.text-color-light{color:#dbdbdb}:host .popover-title.text-color-neutral{color:#4f5361}:host .popover-title.text-color-dark{color:#3d464d}:host .popover-title.text-color-orange{color:#ff6900}:host .popover-title.text-color-navigation{color:#202945}:host .popover-title.text-color-skyBlue{color:#009bdf}:host .popover-title.text-color-steel{color:#5b6770}:host .popover-title.text-color-metal{color:#637893}:host .popover-title.text-color-sand{color:#f4f4f4}:host .popover-title.text-color-silver{color:#e2e2e2}:host .popover-title.text-color-stone{color:#bebebe}:host .popover-title.text-color-ash{color:#a0a0a0}:host .popover-title.text-color-slate{color:#707070}:host .popover-title.text-color-onyx{color:#526980}:host .popover-title.text-color-charcoal{color:#282828}:host .popover-title.text-color-moonlight{color:#1a242f}:host .popover-title.text-color-midnight{color:#202945}:host .popover-title.text-color-darkness{color:#161f27}:host .popover-title.text-color-navy{color:#0d2d42}:host .popover-title.text-color-aqua{color:#3bafda}:host .popover-title.text-color-ocean{color:#4a89dc}:host .popover-title.text-color-mint{color:#37bc9b}:host .popover-title.text-color-grass{color:#8cc152}:host .popover-title.text-color-sunflower{color:#f6b042}:host .popover-title.text-color-bittersweet{color:#eb6845}:host .popover-title.text-color-grapefruit{color:#da4453}:host .popover-title.text-color-carnation{color:#d770ad}:host .popover-title.text-color-lavender{color:#967adc}:host .popover-title.text-color-mountain{color:#9678b6}:host .popover-title.text-color-info{color:#4a89dc}:host .popover-title.text-color-positive{color:#4a89dc}:host .popover-title.text-color-success{color:#8cc152}:host .popover-title.text-color-negative{color:#da4453}:host .popover-title.text-color-danger{color:#da4453}:host .popover-title.text-color-error{color:#da4453}:host .popover-title.text-color-warning{color:#f6b042}:host .popover-title.text-color-empty{color:#cccdcc}:host .popover-title.text-color-disabled{color:#bebebe}:host .popover-title.text-color-background{color:#f7f7f7}:host .popover-title.text-color-backgroundDark{color:#e2e2e2}:host .popover-title.text-color-presentation{color:#5b6770}:host .popover-title.text-color-bullhorn{color:#ff6900}:host .popover-title.text-color-pulse{color:#3bafda}:host .popover-title.text-color-company{color:#39d}:host .popover-title.text-color-candidate{color:#4b7}:host .popover-title.text-color-lead{color:#a69}:host .popover-title.text-color-contact{color:#fa4}:host .popover-title.text-color-clientcontact{color:#fa4}:host .popover-title.text-color-opportunity{color:#625}:host .popover-title.text-color-job{color:#b56}:host .popover-title.text-color-joborder{color:#b56}:host .popover-title.text-color-submission{color:#a9adbb}:host .popover-title.text-color-sendout{color:#747884}:host .popover-title.text-color-placement{color:#0b344f}:host .popover-title.text-color-note{color:#747884}:host .popover-title.text-color-contract{color:#454ea0}:host .popover-title.text-color-task{color:#4f5361}:host .popover-title.text-color-jobCode{color:#696d79}:host .popover-title.text-color-earnCode{color:#696d79}:host .popover-title.text-color-invoiceStatement{color:#696d79}:host .popover-title.text-color-billableCharge{color:#696d79}:host .popover-title.text-color-payableCharge{color:#696d79}:host .popover-title.text-color-user{color:#696d79}:host .popover-title.text-color-corporateUser{color:#696d79}:host .popover-title.text-color-distributionList{color:#696d79}:host .popover-title.text-color-credential{color:#696d79}:host .popover-title.text-color-person{color:#696d79}:host .popover-title.margin-before{margin-top:.4rem}:host .popover-title.margin-after{margin-bottom:.8rem}:host .popover-title.text-length-small{max-width:40ch}:host .popover-title.text-length-medium{max-width:55ch}:host .popover-title.text-length-large{max-width:70ch}:host .popover-title.text-weight-hairline{font-weight:100}:host .popover-title.text-weight-thin{font-weight:200}:host .popover-title.text-weight-light{font-weight:300}:host .popover-title.text-weight-normal{font-weight:400}:host .popover-title.text-weight-medium{font-weight:500}:host .popover-title.text-weight-semibold{font-weight:600}:host .popover-title.text-weight-bold{font-weight:700}:host .popover-title.text-weight-extrabold{font-weight:800}:host .popover-title.text-weight-heavy{font-weight:900}:host .popover-title.text-weight-lighter{font-weight:lighter}:host .popover-title.text-weight-bolder{font-weight:bolder}:host .popover-content{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle}:host .popover-content.text-capitalize{text-transform:capitalize}:host .popover-content.text-uppercase{text-transform:uppercase}:host .popover-content.text-nowrap{white-space:nowrap}:host .popover-content.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-content.text-size-default{font-size:inherit}:host .popover-content.text-size-body{font-size:1.3rem}:host .popover-content.text-size-xs{font-size:1rem}:host .popover-content.text-size-sm{font-size:1.2rem}:host .popover-content.text-size-md{font-size:1.3rem}:host .popover-content.text-size-lg{font-size:1.6rem}:host .popover-content.text-size-xl{font-size:2rem}:host .popover-content.text-size-2xl{font-size:2.6rem}:host .popover-content.text-size-3xl{font-size:3.2rem}:host .popover-content.text-size-smaller{font-size:.8em}:host .popover-content.text-size-larger{font-size:1.2em}:host .popover-content.text-color-black{color:#000}:host .popover-content.text-color-white{color:#fff}:host .popover-content.text-color-gray{color:#9e9e9e}:host .popover-content.text-color-grey{color:#9e9e9e}:host .popover-content.text-color-offWhite{color:#f7f7f7}:host .popover-content.text-color-bright{color:#f7f7f7}:host .popover-content.text-color-light{color:#dbdbdb}:host .popover-content.text-color-neutral{color:#4f5361}:host .popover-content.text-color-dark{color:#3d464d}:host .popover-content.text-color-orange{color:#ff6900}:host .popover-content.text-color-navigation{color:#202945}:host .popover-content.text-color-skyBlue{color:#009bdf}:host .popover-content.text-color-steel{color:#5b6770}:host .popover-content.text-color-metal{color:#637893}:host .popover-content.text-color-sand{color:#f4f4f4}:host .popover-content.text-color-silver{color:#e2e2e2}:host .popover-content.text-color-stone{color:#bebebe}:host .popover-content.text-color-ash{color:#a0a0a0}:host .popover-content.text-color-slate{color:#707070}:host .popover-content.text-color-onyx{color:#526980}:host .popover-content.text-color-charcoal{color:#282828}:host .popover-content.text-color-moonlight{color:#1a242f}:host .popover-content.text-color-midnight{color:#202945}:host .popover-content.text-color-darkness{color:#161f27}:host .popover-content.text-color-navy{color:#0d2d42}:host .popover-content.text-color-aqua{color:#3bafda}:host .popover-content.text-color-ocean{color:#4a89dc}:host .popover-content.text-color-mint{color:#37bc9b}:host .popover-content.text-color-grass{color:#8cc152}:host .popover-content.text-color-sunflower{color:#f6b042}:host .popover-content.text-color-bittersweet{color:#eb6845}:host .popover-content.text-color-grapefruit{color:#da4453}:host .popover-content.text-color-carnation{color:#d770ad}:host .popover-content.text-color-lavender{color:#967adc}:host .popover-content.text-color-mountain{color:#9678b6}:host .popover-content.text-color-info{color:#4a89dc}:host .popover-content.text-color-positive{color:#4a89dc}:host .popover-content.text-color-success{color:#8cc152}:host .popover-content.text-color-negative{color:#da4453}:host .popover-content.text-color-danger{color:#da4453}:host .popover-content.text-color-error{color:#da4453}:host .popover-content.text-color-warning{color:#f6b042}:host .popover-content.text-color-empty{color:#cccdcc}:host .popover-content.text-color-disabled{color:#bebebe}:host .popover-content.text-color-background{color:#f7f7f7}:host .popover-content.text-color-backgroundDark{color:#e2e2e2}:host .popover-content.text-color-presentation{color:#5b6770}:host .popover-content.text-color-bullhorn{color:#ff6900}:host .popover-content.text-color-pulse{color:#3bafda}:host .popover-content.text-color-company{color:#39d}:host .popover-content.text-color-candidate{color:#4b7}:host .popover-content.text-color-lead{color:#a69}:host .popover-content.text-color-contact{color:#fa4}:host .popover-content.text-color-clientcontact{color:#fa4}:host .popover-content.text-color-opportunity{color:#625}:host .popover-content.text-color-job{color:#b56}:host .popover-content.text-color-joborder{color:#b56}:host .popover-content.text-color-submission{color:#a9adbb}:host .popover-content.text-color-sendout{color:#747884}:host .popover-content.text-color-placement{color:#0b344f}:host .popover-content.text-color-note{color:#747884}:host .popover-content.text-color-contract{color:#454ea0}:host .popover-content.text-color-task{color:#4f5361}:host .popover-content.text-color-jobCode{color:#696d79}:host .popover-content.text-color-earnCode{color:#696d79}:host .popover-content.text-color-invoiceStatement{color:#696d79}:host .popover-content.text-color-billableCharge{color:#696d79}:host .popover-content.text-color-payableCharge{color:#696d79}:host .popover-content.text-color-user{color:#696d79}:host .popover-content.text-color-corporateUser{color:#696d79}:host .popover-content.text-color-distributionList{color:#696d79}:host .popover-content.text-color-credential{color:#696d79}:host .popover-content.text-color-person{color:#696d79}:host .popover-content.margin-before{margin-top:.4rem}:host .popover-content.margin-after{margin-bottom:.8rem}:host .popover-content.text-length-small{max-width:40ch}:host .popover-content.text-length-medium{max-width:55ch}:host .popover-content.text-length-large{max-width:70ch}:host .popover-content.text-weight-hairline{font-weight:100}:host .popover-content.text-weight-thin{font-weight:200}:host .popover-content.text-weight-light{font-weight:300}:host .popover-content.text-weight-normal{font-weight:400}:host .popover-content.text-weight-medium{font-weight:500}:host .popover-content.text-weight-semibold{font-weight:600}:host .popover-content.text-weight-bold{font-weight:700}:host .popover-content.text-weight-extrabold{font-weight:800}:host .popover-content.text-weight-heavy{font-weight:900}:host .popover-content.text-weight-lighter{font-weight:lighter}:host .popover-content.text-weight-bolder{font-weight:bolder}:host .popover-content .popover-content-text{white-space:pre-line}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
189
+ `, isInline: true, styles: [":host .popover{position:absolute;top:0;left:0;z-index:1000;display:none;width:40rem;padding:2rem;background-color:var(--background-bright, #ffffff);color:var(--text-main, #3d464d);background-clip:padding-box;box-shadow:0 1px 2px #00000026}:host .popover.top{margin-top:-1rem}:host .popover.top.virtual-area{bottom:-1.1rem}:host .popover.right{margin-left:1rem}:host .popover.right.virtual-area{left:-1.1rem}:host .popover.bottom{margin-top:1rem}:host .popover.bottom.virtual-area{top:-1.1rem}:host .popover.left{margin-left:-1rem}:host .popover.left.virtual-area{right:-1.1rem}:host .popover .virtual-area{height:1.1rem;width:100%;position:absolute}:host .popover.top>.arrow{margin-left:-9px;border-bottom-width:0;border-top-color:#0000001a;bottom:-9px}:host .popover.top>.arrow:before{content:\" \";bottom:1px;margin-left:-1rem;border-bottom-width:0;border-top-color:var(--background-bright, #ffffff)}:host .popover.top>.arrow.center{left:50%}:host .popover.top>.arrow.left{left:91%}:host .popover.top>.arrow.right{left:9%}:host .popover.right>.arrow{left:-9px;margin-top:-9px;border-left-width:0;border-right-color:#0000001a}:host .popover.right>.arrow:before{content:\" \";left:1px;bottom:-1rem;border-left-width:0;border-right-color:var(--background-bright, #ffffff)}:host .popover.right>.arrow.center{top:50%}:host .popover.right>.arrow.top{top:91%}:host .popover.right>.arrow.bottom{top:9%}:host .popover.bottom>.arrow{margin-left:-9px;border-top-width:0;border-bottom-color:#0000001a;top:-9px}:host .popover.bottom>.arrow:before{content:\" \";top:1px;margin-left:-1rem;border-top-width:0;border-bottom-color:var(--background-bright, #ffffff)}:host .popover.bottom>.arrow.center{left:50%}:host .popover.bottom>.arrow.left{left:91%}:host .popover.bottom>.arrow.right{left:9%}:host .popover.left>.arrow{right:-9px;margin-top:-9px;border-right-width:0;border-left-color:#0000001a}:host .popover.left>.arrow:before{content:\" \";right:1px;border-right-width:0;border-left-color:var(--background-bright, #ffffff);bottom:-1rem}:host .popover.left>.arrow.center{top:50%}:host .popover.left>.arrow.top{top:91%}:host .popover.left>.arrow.bottom{top:9%}:host .popover>.arrow{border-width:9px}:host .popover>.arrow,:host .popover>.arrow:before{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}:host .popover>.arrow:before{border-width:1rem;content:\"\"}:host .popover-title{font-weight:500;line-height:1.5;color:var(--text-main, #3d464d);white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-title);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;margin-bottom:1rem;white-space:normal;overflow:hidden;max-width:100%}:host .popover-title.text-capitalize{text-transform:capitalize}:host .popover-title.text-uppercase{text-transform:uppercase}:host .popover-title.text-nowrap{white-space:nowrap}:host .popover-title.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-title.text-size-default{font-size:inherit}:host .popover-title.text-size-body{font-size:1.3rem}:host .popover-title.text-size-xs{font-size:1rem}:host .popover-title.text-size-sm{font-size:1.2rem}:host .popover-title.text-size-md{font-size:1.3rem}:host .popover-title.text-size-lg{font-size:1.6rem}:host .popover-title.text-size-xl{font-size:2rem}:host .popover-title.text-size-2xl{font-size:2.6rem}:host .popover-title.text-size-3xl{font-size:3.2rem}:host .popover-title.text-size-smaller{font-size:.8em}:host .popover-title.text-size-larger{font-size:1.2em}:host .popover-title.text-color-black{color:#000}:host .popover-title.text-color-white{color:#fff}:host .popover-title.text-color-gray{color:#9e9e9e}:host .popover-title.text-color-grey{color:#9e9e9e}:host .popover-title.text-color-offWhite{color:#f7f7f7}:host .popover-title.text-color-bright{color:#f7f7f7}:host .popover-title.text-color-light{color:#dbdbdb}:host .popover-title.text-color-neutral{color:#4f5361}:host .popover-title.text-color-dark{color:#3d464d}:host .popover-title.text-color-orange{color:#ff6900}:host .popover-title.text-color-navigation{color:#202945}:host .popover-title.text-color-skyBlue{color:#009bdf}:host .popover-title.text-color-steel{color:#5b6770}:host .popover-title.text-color-metal{color:#637893}:host .popover-title.text-color-sand{color:#f4f4f4}:host .popover-title.text-color-silver{color:#e2e2e2}:host .popover-title.text-color-stone{color:#bebebe}:host .popover-title.text-color-ash{color:#a0a0a0}:host .popover-title.text-color-slate{color:#707070}:host .popover-title.text-color-onyx{color:#526980}:host .popover-title.text-color-charcoal{color:#282828}:host .popover-title.text-color-moonlight{color:#1a242f}:host .popover-title.text-color-midnight{color:#202945}:host .popover-title.text-color-darkness{color:#161f27}:host .popover-title.text-color-navy{color:#0d2d42}:host .popover-title.text-color-aqua{color:#3bafda}:host .popover-title.text-color-ocean{color:#4a89dc}:host .popover-title.text-color-mint{color:#37bc9b}:host .popover-title.text-color-grass{color:#8cc152}:host .popover-title.text-color-sunflower{color:#f6b042}:host .popover-title.text-color-bittersweet{color:#eb6845}:host .popover-title.text-color-grapefruit{color:#da4453}:host .popover-title.text-color-carnation{color:#d770ad}:host .popover-title.text-color-lavender{color:#967adc}:host .popover-title.text-color-mountain{color:#9678b6}:host .popover-title.text-color-info{color:#4a89dc}:host .popover-title.text-color-positive{color:#4a89dc}:host .popover-title.text-color-success{color:#8cc152}:host .popover-title.text-color-negative{color:#da4453}:host .popover-title.text-color-danger{color:#da4453}:host .popover-title.text-color-error{color:#da4453}:host .popover-title.text-color-warning{color:#f6b042}:host .popover-title.text-color-empty{color:#cccdcc}:host .popover-title.text-color-disabled{color:#bebebe}:host .popover-title.text-color-background{color:#f7f7f7}:host .popover-title.text-color-backgroundDark{color:#e2e2e2}:host .popover-title.text-color-presentation{color:#5b6770}:host .popover-title.text-color-bullhorn{color:#ff6900}:host .popover-title.text-color-pulse{color:#3bafda}:host .popover-title.text-color-company{color:#39d}:host .popover-title.text-color-candidate{color:#4b7}:host .popover-title.text-color-lead{color:#a69}:host .popover-title.text-color-contact{color:#fa4}:host .popover-title.text-color-clientcontact{color:#fa4}:host .popover-title.text-color-opportunity{color:#625}:host .popover-title.text-color-job{color:#b56}:host .popover-title.text-color-joborder{color:#b56}:host .popover-title.text-color-submission{color:#a9adbb}:host .popover-title.text-color-sendout{color:#747884}:host .popover-title.text-color-placement{color:#0b344f}:host .popover-title.text-color-note{color:#747884}:host .popover-title.text-color-contract{color:#454ea0}:host .popover-title.text-color-task{color:#4f5361}:host .popover-title.text-color-jobCode{color:#696d79}:host .popover-title.text-color-earnCode{color:#696d79}:host .popover-title.text-color-invoiceStatement{color:#696d79}:host .popover-title.text-color-billableCharge{color:#696d79}:host .popover-title.text-color-payableCharge{color:#696d79}:host .popover-title.text-color-user{color:#696d79}:host .popover-title.text-color-corporateUser{color:#696d79}:host .popover-title.text-color-distributionList{color:#696d79}:host .popover-title.text-color-credential{color:#696d79}:host .popover-title.text-color-person{color:#696d79}:host .popover-title.margin-before{margin-top:.4rem}:host .popover-title.margin-after{margin-bottom:.8rem}:host .popover-title.text-length-small{max-width:40ch}:host .popover-title.text-length-medium{max-width:55ch}:host .popover-title.text-length-large{max-width:70ch}:host .popover-title.text-weight-hairline{font-weight:100}:host .popover-title.text-weight-thin{font-weight:200}:host .popover-title.text-weight-light{font-weight:300}:host .popover-title.text-weight-normal{font-weight:400}:host .popover-title.text-weight-medium{font-weight:500}:host .popover-title.text-weight-semibold{font-weight:600}:host .popover-title.text-weight-bold{font-weight:700}:host .popover-title.text-weight-extrabold{font-weight:800}:host .popover-title.text-weight-heavy{font-weight:900}:host .popover-title.text-weight-lighter{font-weight:lighter}:host .popover-title.text-weight-bolder{font-weight:bolder}:host .popover-content{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle}:host .popover-content.text-capitalize{text-transform:capitalize}:host .popover-content.text-uppercase{text-transform:uppercase}:host .popover-content.text-nowrap{white-space:nowrap}:host .popover-content.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-content.text-size-default{font-size:inherit}:host .popover-content.text-size-body{font-size:1.3rem}:host .popover-content.text-size-xs{font-size:1rem}:host .popover-content.text-size-sm{font-size:1.2rem}:host .popover-content.text-size-md{font-size:1.3rem}:host .popover-content.text-size-lg{font-size:1.6rem}:host .popover-content.text-size-xl{font-size:2rem}:host .popover-content.text-size-2xl{font-size:2.6rem}:host .popover-content.text-size-3xl{font-size:3.2rem}:host .popover-content.text-size-smaller{font-size:.8em}:host .popover-content.text-size-larger{font-size:1.2em}:host .popover-content.text-color-black{color:#000}:host .popover-content.text-color-white{color:#fff}:host .popover-content.text-color-gray{color:#9e9e9e}:host .popover-content.text-color-grey{color:#9e9e9e}:host .popover-content.text-color-offWhite{color:#f7f7f7}:host .popover-content.text-color-bright{color:#f7f7f7}:host .popover-content.text-color-light{color:#dbdbdb}:host .popover-content.text-color-neutral{color:#4f5361}:host .popover-content.text-color-dark{color:#3d464d}:host .popover-content.text-color-orange{color:#ff6900}:host .popover-content.text-color-navigation{color:#202945}:host .popover-content.text-color-skyBlue{color:#009bdf}:host .popover-content.text-color-steel{color:#5b6770}:host .popover-content.text-color-metal{color:#637893}:host .popover-content.text-color-sand{color:#f4f4f4}:host .popover-content.text-color-silver{color:#e2e2e2}:host .popover-content.text-color-stone{color:#bebebe}:host .popover-content.text-color-ash{color:#a0a0a0}:host .popover-content.text-color-slate{color:#707070}:host .popover-content.text-color-onyx{color:#526980}:host .popover-content.text-color-charcoal{color:#282828}:host .popover-content.text-color-moonlight{color:#1a242f}:host .popover-content.text-color-midnight{color:#202945}:host .popover-content.text-color-darkness{color:#161f27}:host .popover-content.text-color-navy{color:#0d2d42}:host .popover-content.text-color-aqua{color:#3bafda}:host .popover-content.text-color-ocean{color:#4a89dc}:host .popover-content.text-color-mint{color:#37bc9b}:host .popover-content.text-color-grass{color:#8cc152}:host .popover-content.text-color-sunflower{color:#f6b042}:host .popover-content.text-color-bittersweet{color:#eb6845}:host .popover-content.text-color-grapefruit{color:#da4453}:host .popover-content.text-color-carnation{color:#d770ad}:host .popover-content.text-color-lavender{color:#967adc}:host .popover-content.text-color-mountain{color:#9678b6}:host .popover-content.text-color-info{color:#4a89dc}:host .popover-content.text-color-positive{color:#4a89dc}:host .popover-content.text-color-success{color:#8cc152}:host .popover-content.text-color-negative{color:#da4453}:host .popover-content.text-color-danger{color:#da4453}:host .popover-content.text-color-error{color:#da4453}:host .popover-content.text-color-warning{color:#f6b042}:host .popover-content.text-color-empty{color:#cccdcc}:host .popover-content.text-color-disabled{color:#bebebe}:host .popover-content.text-color-background{color:#f7f7f7}:host .popover-content.text-color-backgroundDark{color:#e2e2e2}:host .popover-content.text-color-presentation{color:#5b6770}:host .popover-content.text-color-bullhorn{color:#ff6900}:host .popover-content.text-color-pulse{color:#3bafda}:host .popover-content.text-color-company{color:#39d}:host .popover-content.text-color-candidate{color:#4b7}:host .popover-content.text-color-lead{color:#a69}:host .popover-content.text-color-contact{color:#fa4}:host .popover-content.text-color-clientcontact{color:#fa4}:host .popover-content.text-color-opportunity{color:#625}:host .popover-content.text-color-job{color:#b56}:host .popover-content.text-color-joborder{color:#b56}:host .popover-content.text-color-submission{color:#a9adbb}:host .popover-content.text-color-sendout{color:#747884}:host .popover-content.text-color-placement{color:#0b344f}:host .popover-content.text-color-note{color:#747884}:host .popover-content.text-color-contract{color:#454ea0}:host .popover-content.text-color-task{color:#4f5361}:host .popover-content.text-color-jobCode{color:#696d79}:host .popover-content.text-color-earnCode{color:#696d79}:host .popover-content.text-color-invoiceStatement{color:#696d79}:host .popover-content.text-color-billableCharge{color:#696d79}:host .popover-content.text-color-payableCharge{color:#696d79}:host .popover-content.text-color-user{color:#696d79}:host .popover-content.text-color-corporateUser{color:#696d79}:host .popover-content.text-color-distributionList{color:#696d79}:host .popover-content.text-color-credential{color:#696d79}:host .popover-content.text-color-person{color:#696d79}:host .popover-content.margin-before{margin-top:.4rem}:host .popover-content.margin-after{margin-bottom:.8rem}:host .popover-content.text-length-small{max-width:40ch}:host .popover-content.text-length-medium{max-width:55ch}:host .popover-content.text-length-large{max-width:70ch}:host .popover-content.text-weight-hairline{font-weight:100}:host .popover-content.text-weight-thin{font-weight:200}:host .popover-content.text-weight-light{font-weight:300}:host .popover-content.text-weight-normal{font-weight:400}:host .popover-content.text-weight-medium{font-weight:500}:host .popover-content.text-weight-semibold{font-weight:600}:host .popover-content.text-weight-bold{font-weight:700}:host .popover-content.text-weight-extrabold{font-weight:800}:host .popover-content.text-weight-heavy{font-weight:900}:host .popover-content.text-weight-lighter{font-weight:lighter}:host .popover-content.text-weight-bolder{font-weight:bolder}:host .popover-content .popover-content-text{white-space:pre-line}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImport: i0, type: PopOverContent, decorators: [{
192
192
  type: Component,
@@ -208,7 +208,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.18", ngImpo
208
208
  <div *ngIf="!htmlContent" class="popover-content-text">{{ content }}</div>
209
209
  </div>
210
210
  </div>
211
- `, standalone: false, styles: [":host .popover{position:absolute;top:0;left:0;z-index:1000;display:none;width:40rem;padding:2rem;background-color:var(--background-bright, #ffffff);color:var(--text-main, #3d464d);background-clip:padding-box;box-shadow:0 1px 2px #00000026}:host .popover.top{margin-top:-1rem}:host .popover.top.virtual-area{bottom:-1.1rem}:host .popover.right{margin-left:1rem}:host .popover.right.virtual-area{left:-1.1rem}:host .popover.bottom{margin-top:1rem}:host .popover.bottom.virtual-area{top:-1.1rem}:host .popover.left{margin-left:-1rem}:host .popover.left.virtual-area{right:-1.1rem}:host .popover .virtual-area{height:1.1rem;width:100%;position:absolute}:host .popover.top>.arrow{margin-left:-9px;border-bottom-width:0;border-top-color:#0000001a;bottom:-9px}:host .popover.top>.arrow:before{content:\" \";bottom:1px;margin-left:-1rem;border-bottom-width:0;border-top-color:var(--background-bright, #ffffff)}:host .popover.top>.arrow.center{left:50%}:host .popover.top>.arrow.left{left:91%}:host .popover.top>.arrow.right{left:9%}:host .popover.right>.arrow{left:-9px;margin-top:-9px;border-left-width:0;border-right-color:#0000001a}:host .popover.right>.arrow:before{content:\" \";left:1px;bottom:-1rem;border-left-width:0;border-right-color:var(--background-bright, #ffffff)}:host .popover.right>.arrow.center{top:50%}:host .popover.right>.arrow.top{top:91%}:host .popover.right>.arrow.bottom{top:9%}:host .popover.bottom>.arrow{margin-left:-9px;border-top-width:0;border-bottom-color:#0000001a;top:-9px}:host .popover.bottom>.arrow:before{content:\" \";top:1px;margin-left:-1rem;border-top-width:0;border-bottom-color:var(--background-bright, #ffffff)}:host .popover.bottom>.arrow.center{left:50%}:host .popover.bottom>.arrow.left{left:91%}:host .popover.bottom>.arrow.right{left:9%}:host .popover.left>.arrow{right:-9px;margin-top:-9px;border-right-width:0;border-left-color:#0000001a}:host .popover.left>.arrow:before{content:\" \";right:1px;border-right-width:0;border-left-color:var(--background-bright, #ffffff);bottom:-1rem}:host .popover.left>.arrow.center{top:50%}:host .popover.left>.arrow.top{top:91%}:host .popover.left>.arrow.bottom{top:9%}:host .popover>.arrow{border-width:9px}:host .popover>.arrow,:host .popover>.arrow:before{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}:host .popover>.arrow:before{border-width:1rem;content:\"\"}:host .popover-title{font-weight:500;line-height:1.5;color:var(--text-main, #3d464d);white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-title);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;margin-bottom:1rem}:host .popover-title.text-capitalize{text-transform:capitalize}:host .popover-title.text-uppercase{text-transform:uppercase}:host .popover-title.text-nowrap{white-space:nowrap}:host .popover-title.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-title.text-size-default{font-size:inherit}:host .popover-title.text-size-body{font-size:1.3rem}:host .popover-title.text-size-xs{font-size:1rem}:host .popover-title.text-size-sm{font-size:1.2rem}:host .popover-title.text-size-md{font-size:1.3rem}:host .popover-title.text-size-lg{font-size:1.6rem}:host .popover-title.text-size-xl{font-size:2rem}:host .popover-title.text-size-2xl{font-size:2.6rem}:host .popover-title.text-size-3xl{font-size:3.2rem}:host .popover-title.text-size-smaller{font-size:.8em}:host .popover-title.text-size-larger{font-size:1.2em}:host .popover-title.text-color-black{color:#000}:host .popover-title.text-color-white{color:#fff}:host .popover-title.text-color-gray{color:#9e9e9e}:host .popover-title.text-color-grey{color:#9e9e9e}:host .popover-title.text-color-offWhite{color:#f7f7f7}:host .popover-title.text-color-bright{color:#f7f7f7}:host .popover-title.text-color-light{color:#dbdbdb}:host .popover-title.text-color-neutral{color:#4f5361}:host .popover-title.text-color-dark{color:#3d464d}:host .popover-title.text-color-orange{color:#ff6900}:host .popover-title.text-color-navigation{color:#202945}:host .popover-title.text-color-skyBlue{color:#009bdf}:host .popover-title.text-color-steel{color:#5b6770}:host .popover-title.text-color-metal{color:#637893}:host .popover-title.text-color-sand{color:#f4f4f4}:host .popover-title.text-color-silver{color:#e2e2e2}:host .popover-title.text-color-stone{color:#bebebe}:host .popover-title.text-color-ash{color:#a0a0a0}:host .popover-title.text-color-slate{color:#707070}:host .popover-title.text-color-onyx{color:#526980}:host .popover-title.text-color-charcoal{color:#282828}:host .popover-title.text-color-moonlight{color:#1a242f}:host .popover-title.text-color-midnight{color:#202945}:host .popover-title.text-color-darkness{color:#161f27}:host .popover-title.text-color-navy{color:#0d2d42}:host .popover-title.text-color-aqua{color:#3bafda}:host .popover-title.text-color-ocean{color:#4a89dc}:host .popover-title.text-color-mint{color:#37bc9b}:host .popover-title.text-color-grass{color:#8cc152}:host .popover-title.text-color-sunflower{color:#f6b042}:host .popover-title.text-color-bittersweet{color:#eb6845}:host .popover-title.text-color-grapefruit{color:#da4453}:host .popover-title.text-color-carnation{color:#d770ad}:host .popover-title.text-color-lavender{color:#967adc}:host .popover-title.text-color-mountain{color:#9678b6}:host .popover-title.text-color-info{color:#4a89dc}:host .popover-title.text-color-positive{color:#4a89dc}:host .popover-title.text-color-success{color:#8cc152}:host .popover-title.text-color-negative{color:#da4453}:host .popover-title.text-color-danger{color:#da4453}:host .popover-title.text-color-error{color:#da4453}:host .popover-title.text-color-warning{color:#f6b042}:host .popover-title.text-color-empty{color:#cccdcc}:host .popover-title.text-color-disabled{color:#bebebe}:host .popover-title.text-color-background{color:#f7f7f7}:host .popover-title.text-color-backgroundDark{color:#e2e2e2}:host .popover-title.text-color-presentation{color:#5b6770}:host .popover-title.text-color-bullhorn{color:#ff6900}:host .popover-title.text-color-pulse{color:#3bafda}:host .popover-title.text-color-company{color:#39d}:host .popover-title.text-color-candidate{color:#4b7}:host .popover-title.text-color-lead{color:#a69}:host .popover-title.text-color-contact{color:#fa4}:host .popover-title.text-color-clientcontact{color:#fa4}:host .popover-title.text-color-opportunity{color:#625}:host .popover-title.text-color-job{color:#b56}:host .popover-title.text-color-joborder{color:#b56}:host .popover-title.text-color-submission{color:#a9adbb}:host .popover-title.text-color-sendout{color:#747884}:host .popover-title.text-color-placement{color:#0b344f}:host .popover-title.text-color-note{color:#747884}:host .popover-title.text-color-contract{color:#454ea0}:host .popover-title.text-color-task{color:#4f5361}:host .popover-title.text-color-jobCode{color:#696d79}:host .popover-title.text-color-earnCode{color:#696d79}:host .popover-title.text-color-invoiceStatement{color:#696d79}:host .popover-title.text-color-billableCharge{color:#696d79}:host .popover-title.text-color-payableCharge{color:#696d79}:host .popover-title.text-color-user{color:#696d79}:host .popover-title.text-color-corporateUser{color:#696d79}:host .popover-title.text-color-distributionList{color:#696d79}:host .popover-title.text-color-credential{color:#696d79}:host .popover-title.text-color-person{color:#696d79}:host .popover-title.margin-before{margin-top:.4rem}:host .popover-title.margin-after{margin-bottom:.8rem}:host .popover-title.text-length-small{max-width:40ch}:host .popover-title.text-length-medium{max-width:55ch}:host .popover-title.text-length-large{max-width:70ch}:host .popover-title.text-weight-hairline{font-weight:100}:host .popover-title.text-weight-thin{font-weight:200}:host .popover-title.text-weight-light{font-weight:300}:host .popover-title.text-weight-normal{font-weight:400}:host .popover-title.text-weight-medium{font-weight:500}:host .popover-title.text-weight-semibold{font-weight:600}:host .popover-title.text-weight-bold{font-weight:700}:host .popover-title.text-weight-extrabold{font-weight:800}:host .popover-title.text-weight-heavy{font-weight:900}:host .popover-title.text-weight-lighter{font-weight:lighter}:host .popover-title.text-weight-bolder{font-weight:bolder}:host .popover-content{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle}:host .popover-content.text-capitalize{text-transform:capitalize}:host .popover-content.text-uppercase{text-transform:uppercase}:host .popover-content.text-nowrap{white-space:nowrap}:host .popover-content.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-content.text-size-default{font-size:inherit}:host .popover-content.text-size-body{font-size:1.3rem}:host .popover-content.text-size-xs{font-size:1rem}:host .popover-content.text-size-sm{font-size:1.2rem}:host .popover-content.text-size-md{font-size:1.3rem}:host .popover-content.text-size-lg{font-size:1.6rem}:host .popover-content.text-size-xl{font-size:2rem}:host .popover-content.text-size-2xl{font-size:2.6rem}:host .popover-content.text-size-3xl{font-size:3.2rem}:host .popover-content.text-size-smaller{font-size:.8em}:host .popover-content.text-size-larger{font-size:1.2em}:host .popover-content.text-color-black{color:#000}:host .popover-content.text-color-white{color:#fff}:host .popover-content.text-color-gray{color:#9e9e9e}:host .popover-content.text-color-grey{color:#9e9e9e}:host .popover-content.text-color-offWhite{color:#f7f7f7}:host .popover-content.text-color-bright{color:#f7f7f7}:host .popover-content.text-color-light{color:#dbdbdb}:host .popover-content.text-color-neutral{color:#4f5361}:host .popover-content.text-color-dark{color:#3d464d}:host .popover-content.text-color-orange{color:#ff6900}:host .popover-content.text-color-navigation{color:#202945}:host .popover-content.text-color-skyBlue{color:#009bdf}:host .popover-content.text-color-steel{color:#5b6770}:host .popover-content.text-color-metal{color:#637893}:host .popover-content.text-color-sand{color:#f4f4f4}:host .popover-content.text-color-silver{color:#e2e2e2}:host .popover-content.text-color-stone{color:#bebebe}:host .popover-content.text-color-ash{color:#a0a0a0}:host .popover-content.text-color-slate{color:#707070}:host .popover-content.text-color-onyx{color:#526980}:host .popover-content.text-color-charcoal{color:#282828}:host .popover-content.text-color-moonlight{color:#1a242f}:host .popover-content.text-color-midnight{color:#202945}:host .popover-content.text-color-darkness{color:#161f27}:host .popover-content.text-color-navy{color:#0d2d42}:host .popover-content.text-color-aqua{color:#3bafda}:host .popover-content.text-color-ocean{color:#4a89dc}:host .popover-content.text-color-mint{color:#37bc9b}:host .popover-content.text-color-grass{color:#8cc152}:host .popover-content.text-color-sunflower{color:#f6b042}:host .popover-content.text-color-bittersweet{color:#eb6845}:host .popover-content.text-color-grapefruit{color:#da4453}:host .popover-content.text-color-carnation{color:#d770ad}:host .popover-content.text-color-lavender{color:#967adc}:host .popover-content.text-color-mountain{color:#9678b6}:host .popover-content.text-color-info{color:#4a89dc}:host .popover-content.text-color-positive{color:#4a89dc}:host .popover-content.text-color-success{color:#8cc152}:host .popover-content.text-color-negative{color:#da4453}:host .popover-content.text-color-danger{color:#da4453}:host .popover-content.text-color-error{color:#da4453}:host .popover-content.text-color-warning{color:#f6b042}:host .popover-content.text-color-empty{color:#cccdcc}:host .popover-content.text-color-disabled{color:#bebebe}:host .popover-content.text-color-background{color:#f7f7f7}:host .popover-content.text-color-backgroundDark{color:#e2e2e2}:host .popover-content.text-color-presentation{color:#5b6770}:host .popover-content.text-color-bullhorn{color:#ff6900}:host .popover-content.text-color-pulse{color:#3bafda}:host .popover-content.text-color-company{color:#39d}:host .popover-content.text-color-candidate{color:#4b7}:host .popover-content.text-color-lead{color:#a69}:host .popover-content.text-color-contact{color:#fa4}:host .popover-content.text-color-clientcontact{color:#fa4}:host .popover-content.text-color-opportunity{color:#625}:host .popover-content.text-color-job{color:#b56}:host .popover-content.text-color-joborder{color:#b56}:host .popover-content.text-color-submission{color:#a9adbb}:host .popover-content.text-color-sendout{color:#747884}:host .popover-content.text-color-placement{color:#0b344f}:host .popover-content.text-color-note{color:#747884}:host .popover-content.text-color-contract{color:#454ea0}:host .popover-content.text-color-task{color:#4f5361}:host .popover-content.text-color-jobCode{color:#696d79}:host .popover-content.text-color-earnCode{color:#696d79}:host .popover-content.text-color-invoiceStatement{color:#696d79}:host .popover-content.text-color-billableCharge{color:#696d79}:host .popover-content.text-color-payableCharge{color:#696d79}:host .popover-content.text-color-user{color:#696d79}:host .popover-content.text-color-corporateUser{color:#696d79}:host .popover-content.text-color-distributionList{color:#696d79}:host .popover-content.text-color-credential{color:#696d79}:host .popover-content.text-color-person{color:#696d79}:host .popover-content.margin-before{margin-top:.4rem}:host .popover-content.margin-after{margin-bottom:.8rem}:host .popover-content.text-length-small{max-width:40ch}:host .popover-content.text-length-medium{max-width:55ch}:host .popover-content.text-length-large{max-width:70ch}:host .popover-content.text-weight-hairline{font-weight:100}:host .popover-content.text-weight-thin{font-weight:200}:host .popover-content.text-weight-light{font-weight:300}:host .popover-content.text-weight-normal{font-weight:400}:host .popover-content.text-weight-medium{font-weight:500}:host .popover-content.text-weight-semibold{font-weight:600}:host .popover-content.text-weight-bold{font-weight:700}:host .popover-content.text-weight-extrabold{font-weight:800}:host .popover-content.text-weight-heavy{font-weight:900}:host .popover-content.text-weight-lighter{font-weight:lighter}:host .popover-content.text-weight-bolder{font-weight:bolder}:host .popover-content .popover-content-text{white-space:pre-line}\n"] }]
211
+ `, standalone: false, styles: [":host .popover{position:absolute;top:0;left:0;z-index:1000;display:none;width:40rem;padding:2rem;background-color:var(--background-bright, #ffffff);color:var(--text-main, #3d464d);background-clip:padding-box;box-shadow:0 1px 2px #00000026}:host .popover.top{margin-top:-1rem}:host .popover.top.virtual-area{bottom:-1.1rem}:host .popover.right{margin-left:1rem}:host .popover.right.virtual-area{left:-1.1rem}:host .popover.bottom{margin-top:1rem}:host .popover.bottom.virtual-area{top:-1.1rem}:host .popover.left{margin-left:-1rem}:host .popover.left.virtual-area{right:-1.1rem}:host .popover .virtual-area{height:1.1rem;width:100%;position:absolute}:host .popover.top>.arrow{margin-left:-9px;border-bottom-width:0;border-top-color:#0000001a;bottom:-9px}:host .popover.top>.arrow:before{content:\" \";bottom:1px;margin-left:-1rem;border-bottom-width:0;border-top-color:var(--background-bright, #ffffff)}:host .popover.top>.arrow.center{left:50%}:host .popover.top>.arrow.left{left:91%}:host .popover.top>.arrow.right{left:9%}:host .popover.right>.arrow{left:-9px;margin-top:-9px;border-left-width:0;border-right-color:#0000001a}:host .popover.right>.arrow:before{content:\" \";left:1px;bottom:-1rem;border-left-width:0;border-right-color:var(--background-bright, #ffffff)}:host .popover.right>.arrow.center{top:50%}:host .popover.right>.arrow.top{top:91%}:host .popover.right>.arrow.bottom{top:9%}:host .popover.bottom>.arrow{margin-left:-9px;border-top-width:0;border-bottom-color:#0000001a;top:-9px}:host .popover.bottom>.arrow:before{content:\" \";top:1px;margin-left:-1rem;border-top-width:0;border-bottom-color:var(--background-bright, #ffffff)}:host .popover.bottom>.arrow.center{left:50%}:host .popover.bottom>.arrow.left{left:91%}:host .popover.bottom>.arrow.right{left:9%}:host .popover.left>.arrow{right:-9px;margin-top:-9px;border-right-width:0;border-left-color:#0000001a}:host .popover.left>.arrow:before{content:\" \";right:1px;border-right-width:0;border-left-color:var(--background-bright, #ffffff);bottom:-1rem}:host .popover.left>.arrow.center{top:50%}:host .popover.left>.arrow.top{top:91%}:host .popover.left>.arrow.bottom{top:9%}:host .popover>.arrow{border-width:9px}:host .popover>.arrow,:host .popover>.arrow:before{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}:host .popover>.arrow:before{border-width:1rem;content:\"\"}:host .popover-title{font-weight:500;line-height:1.5;color:var(--text-main, #3d464d);white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-size-title);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle;margin-bottom:1rem;white-space:normal;overflow:hidden;max-width:100%}:host .popover-title.text-capitalize{text-transform:capitalize}:host .popover-title.text-uppercase{text-transform:uppercase}:host .popover-title.text-nowrap{white-space:nowrap}:host .popover-title.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-title.text-size-default{font-size:inherit}:host .popover-title.text-size-body{font-size:1.3rem}:host .popover-title.text-size-xs{font-size:1rem}:host .popover-title.text-size-sm{font-size:1.2rem}:host .popover-title.text-size-md{font-size:1.3rem}:host .popover-title.text-size-lg{font-size:1.6rem}:host .popover-title.text-size-xl{font-size:2rem}:host .popover-title.text-size-2xl{font-size:2.6rem}:host .popover-title.text-size-3xl{font-size:3.2rem}:host .popover-title.text-size-smaller{font-size:.8em}:host .popover-title.text-size-larger{font-size:1.2em}:host .popover-title.text-color-black{color:#000}:host .popover-title.text-color-white{color:#fff}:host .popover-title.text-color-gray{color:#9e9e9e}:host .popover-title.text-color-grey{color:#9e9e9e}:host .popover-title.text-color-offWhite{color:#f7f7f7}:host .popover-title.text-color-bright{color:#f7f7f7}:host .popover-title.text-color-light{color:#dbdbdb}:host .popover-title.text-color-neutral{color:#4f5361}:host .popover-title.text-color-dark{color:#3d464d}:host .popover-title.text-color-orange{color:#ff6900}:host .popover-title.text-color-navigation{color:#202945}:host .popover-title.text-color-skyBlue{color:#009bdf}:host .popover-title.text-color-steel{color:#5b6770}:host .popover-title.text-color-metal{color:#637893}:host .popover-title.text-color-sand{color:#f4f4f4}:host .popover-title.text-color-silver{color:#e2e2e2}:host .popover-title.text-color-stone{color:#bebebe}:host .popover-title.text-color-ash{color:#a0a0a0}:host .popover-title.text-color-slate{color:#707070}:host .popover-title.text-color-onyx{color:#526980}:host .popover-title.text-color-charcoal{color:#282828}:host .popover-title.text-color-moonlight{color:#1a242f}:host .popover-title.text-color-midnight{color:#202945}:host .popover-title.text-color-darkness{color:#161f27}:host .popover-title.text-color-navy{color:#0d2d42}:host .popover-title.text-color-aqua{color:#3bafda}:host .popover-title.text-color-ocean{color:#4a89dc}:host .popover-title.text-color-mint{color:#37bc9b}:host .popover-title.text-color-grass{color:#8cc152}:host .popover-title.text-color-sunflower{color:#f6b042}:host .popover-title.text-color-bittersweet{color:#eb6845}:host .popover-title.text-color-grapefruit{color:#da4453}:host .popover-title.text-color-carnation{color:#d770ad}:host .popover-title.text-color-lavender{color:#967adc}:host .popover-title.text-color-mountain{color:#9678b6}:host .popover-title.text-color-info{color:#4a89dc}:host .popover-title.text-color-positive{color:#4a89dc}:host .popover-title.text-color-success{color:#8cc152}:host .popover-title.text-color-negative{color:#da4453}:host .popover-title.text-color-danger{color:#da4453}:host .popover-title.text-color-error{color:#da4453}:host .popover-title.text-color-warning{color:#f6b042}:host .popover-title.text-color-empty{color:#cccdcc}:host .popover-title.text-color-disabled{color:#bebebe}:host .popover-title.text-color-background{color:#f7f7f7}:host .popover-title.text-color-backgroundDark{color:#e2e2e2}:host .popover-title.text-color-presentation{color:#5b6770}:host .popover-title.text-color-bullhorn{color:#ff6900}:host .popover-title.text-color-pulse{color:#3bafda}:host .popover-title.text-color-company{color:#39d}:host .popover-title.text-color-candidate{color:#4b7}:host .popover-title.text-color-lead{color:#a69}:host .popover-title.text-color-contact{color:#fa4}:host .popover-title.text-color-clientcontact{color:#fa4}:host .popover-title.text-color-opportunity{color:#625}:host .popover-title.text-color-job{color:#b56}:host .popover-title.text-color-joborder{color:#b56}:host .popover-title.text-color-submission{color:#a9adbb}:host .popover-title.text-color-sendout{color:#747884}:host .popover-title.text-color-placement{color:#0b344f}:host .popover-title.text-color-note{color:#747884}:host .popover-title.text-color-contract{color:#454ea0}:host .popover-title.text-color-task{color:#4f5361}:host .popover-title.text-color-jobCode{color:#696d79}:host .popover-title.text-color-earnCode{color:#696d79}:host .popover-title.text-color-invoiceStatement{color:#696d79}:host .popover-title.text-color-billableCharge{color:#696d79}:host .popover-title.text-color-payableCharge{color:#696d79}:host .popover-title.text-color-user{color:#696d79}:host .popover-title.text-color-corporateUser{color:#696d79}:host .popover-title.text-color-distributionList{color:#696d79}:host .popover-title.text-color-credential{color:#696d79}:host .popover-title.text-color-person{color:#696d79}:host .popover-title.margin-before{margin-top:.4rem}:host .popover-title.margin-after{margin-bottom:.8rem}:host .popover-title.text-length-small{max-width:40ch}:host .popover-title.text-length-medium{max-width:55ch}:host .popover-title.text-length-large{max-width:70ch}:host .popover-title.text-weight-hairline{font-weight:100}:host .popover-title.text-weight-thin{font-weight:200}:host .popover-title.text-weight-light{font-weight:300}:host .popover-title.text-weight-normal{font-weight:400}:host .popover-title.text-weight-medium{font-weight:500}:host .popover-title.text-weight-semibold{font-weight:600}:host .popover-title.text-weight-bold{font-weight:700}:host .popover-title.text-weight-extrabold{font-weight:800}:host .popover-title.text-weight-heavy{font-weight:900}:host .popover-title.text-weight-lighter{font-weight:lighter}:host .popover-title.text-weight-bolder{font-weight:bolder}:host .popover-content{display:inline;font-weight:400;color:inherit;font-size:var(--font-size-text);transition:color .2s ease-out,opacity .2s ease-out;vertical-align:middle}:host .popover-content.text-capitalize{text-transform:capitalize}:host .popover-content.text-uppercase{text-transform:uppercase}:host .popover-content.text-nowrap{white-space:nowrap}:host .popover-content.text-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:host .popover-content.text-size-default{font-size:inherit}:host .popover-content.text-size-body{font-size:1.3rem}:host .popover-content.text-size-xs{font-size:1rem}:host .popover-content.text-size-sm{font-size:1.2rem}:host .popover-content.text-size-md{font-size:1.3rem}:host .popover-content.text-size-lg{font-size:1.6rem}:host .popover-content.text-size-xl{font-size:2rem}:host .popover-content.text-size-2xl{font-size:2.6rem}:host .popover-content.text-size-3xl{font-size:3.2rem}:host .popover-content.text-size-smaller{font-size:.8em}:host .popover-content.text-size-larger{font-size:1.2em}:host .popover-content.text-color-black{color:#000}:host .popover-content.text-color-white{color:#fff}:host .popover-content.text-color-gray{color:#9e9e9e}:host .popover-content.text-color-grey{color:#9e9e9e}:host .popover-content.text-color-offWhite{color:#f7f7f7}:host .popover-content.text-color-bright{color:#f7f7f7}:host .popover-content.text-color-light{color:#dbdbdb}:host .popover-content.text-color-neutral{color:#4f5361}:host .popover-content.text-color-dark{color:#3d464d}:host .popover-content.text-color-orange{color:#ff6900}:host .popover-content.text-color-navigation{color:#202945}:host .popover-content.text-color-skyBlue{color:#009bdf}:host .popover-content.text-color-steel{color:#5b6770}:host .popover-content.text-color-metal{color:#637893}:host .popover-content.text-color-sand{color:#f4f4f4}:host .popover-content.text-color-silver{color:#e2e2e2}:host .popover-content.text-color-stone{color:#bebebe}:host .popover-content.text-color-ash{color:#a0a0a0}:host .popover-content.text-color-slate{color:#707070}:host .popover-content.text-color-onyx{color:#526980}:host .popover-content.text-color-charcoal{color:#282828}:host .popover-content.text-color-moonlight{color:#1a242f}:host .popover-content.text-color-midnight{color:#202945}:host .popover-content.text-color-darkness{color:#161f27}:host .popover-content.text-color-navy{color:#0d2d42}:host .popover-content.text-color-aqua{color:#3bafda}:host .popover-content.text-color-ocean{color:#4a89dc}:host .popover-content.text-color-mint{color:#37bc9b}:host .popover-content.text-color-grass{color:#8cc152}:host .popover-content.text-color-sunflower{color:#f6b042}:host .popover-content.text-color-bittersweet{color:#eb6845}:host .popover-content.text-color-grapefruit{color:#da4453}:host .popover-content.text-color-carnation{color:#d770ad}:host .popover-content.text-color-lavender{color:#967adc}:host .popover-content.text-color-mountain{color:#9678b6}:host .popover-content.text-color-info{color:#4a89dc}:host .popover-content.text-color-positive{color:#4a89dc}:host .popover-content.text-color-success{color:#8cc152}:host .popover-content.text-color-negative{color:#da4453}:host .popover-content.text-color-danger{color:#da4453}:host .popover-content.text-color-error{color:#da4453}:host .popover-content.text-color-warning{color:#f6b042}:host .popover-content.text-color-empty{color:#cccdcc}:host .popover-content.text-color-disabled{color:#bebebe}:host .popover-content.text-color-background{color:#f7f7f7}:host .popover-content.text-color-backgroundDark{color:#e2e2e2}:host .popover-content.text-color-presentation{color:#5b6770}:host .popover-content.text-color-bullhorn{color:#ff6900}:host .popover-content.text-color-pulse{color:#3bafda}:host .popover-content.text-color-company{color:#39d}:host .popover-content.text-color-candidate{color:#4b7}:host .popover-content.text-color-lead{color:#a69}:host .popover-content.text-color-contact{color:#fa4}:host .popover-content.text-color-clientcontact{color:#fa4}:host .popover-content.text-color-opportunity{color:#625}:host .popover-content.text-color-job{color:#b56}:host .popover-content.text-color-joborder{color:#b56}:host .popover-content.text-color-submission{color:#a9adbb}:host .popover-content.text-color-sendout{color:#747884}:host .popover-content.text-color-placement{color:#0b344f}:host .popover-content.text-color-note{color:#747884}:host .popover-content.text-color-contract{color:#454ea0}:host .popover-content.text-color-task{color:#4f5361}:host .popover-content.text-color-jobCode{color:#696d79}:host .popover-content.text-color-earnCode{color:#696d79}:host .popover-content.text-color-invoiceStatement{color:#696d79}:host .popover-content.text-color-billableCharge{color:#696d79}:host .popover-content.text-color-payableCharge{color:#696d79}:host .popover-content.text-color-user{color:#696d79}:host .popover-content.text-color-corporateUser{color:#696d79}:host .popover-content.text-color-distributionList{color:#696d79}:host .popover-content.text-color-credential{color:#696d79}:host .popover-content.text-color-person{color:#696d79}:host .popover-content.margin-before{margin-top:.4rem}:host .popover-content.margin-after{margin-bottom:.8rem}:host .popover-content.text-length-small{max-width:40ch}:host .popover-content.text-length-medium{max-width:55ch}:host .popover-content.text-length-large{max-width:70ch}:host .popover-content.text-weight-hairline{font-weight:100}:host .popover-content.text-weight-thin{font-weight:200}:host .popover-content.text-weight-light{font-weight:300}:host .popover-content.text-weight-normal{font-weight:400}:host .popover-content.text-weight-medium{font-weight:500}:host .popover-content.text-weight-semibold{font-weight:600}:host .popover-content.text-weight-bold{font-weight:700}:host .popover-content.text-weight-extrabold{font-weight:800}:host .popover-content.text-weight-heavy{font-weight:900}:host .popover-content.text-weight-lighter{font-weight:lighter}:host .popover-content.text-weight-bolder{font-weight:bolder}:host .popover-content .popover-content-text{white-space:pre-line}\n"] }]
212
212
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { content: [{
213
213
  type: Input
214
214
  }], htmlContent: [{
@@ -1 +1 @@
1
- {"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n selector: 'popover-content',\n template: `\n <div\n #popoverDiv\n class=\"popover {{ effectivePlacement }}\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\"\n [class.fade]=\"animation\"\n style=\"display: block\"\n role=\"popover\"\n >\n <div class=\"arrow {{ effectiveAlignment }}\"></div>\n <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n <div class=\"popover-content\">\n <ng-content></ng-content>\n <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n </div>\n </div>\n `,\n styleUrls: ['./PopOver.scss'],\n standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n @Input()\n content: string;\n @Input()\n htmlContent: string;\n @Input()\n placement: string = 'top';\n @Input()\n title: string;\n @Input()\n animation: boolean = true;\n\n @ViewChild('popoverDiv')\n popoverDiv: ElementRef;\n popover: PopOverDirective;\n onCloseFromOutside = new EventEmitter();\n top: number = -10000;\n left: number = -10000;\n displayType: string = 'none';\n effectivePlacement: string;\n effectiveAlignment: string;\n isHidden: boolean = false;\n\n constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this.show();\n this.cdr.detectChanges();\n }\n\n toggle(): void {\n if (this.isHidden) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show(): void {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n\n const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.displayType = 'block';\n this.top = p.top;\n this.left = p.left;\n this.isHidden = false;\n }\n\n hide(): void {\n this.top = -10000;\n this.left = -10000;\n this.isHidden = true;\n this.popover.hide();\n }\n\n hideFromPopover() {\n this.top = -10000;\n this.left = -10000;\n }\n\n protected positionElements(\n hostEl: HTMLElement,\n targetEl: HTMLElement,\n positionStr: string,\n appendToBody = false,\n ): { top: number; left: number } {\n const positionStrParts = positionStr.split('-');\n const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n const targetElWidth = targetEl.offsetWidth;\n const targetElHeight = targetEl.offsetHeight;\n\n const shiftWidth: any = {\n center(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n },\n right(): number {\n return hostElPos.left;\n },\n left(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth);\n },\n };\n\n const shiftHeight: any = {\n center(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n },\n bottom(): number {\n return hostElPos.top;\n },\n top(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight);\n },\n };\n\n let targetElPos: { top: number; left: number };\n switch (mainSide) {\n case 'right':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left + hostElPos.width,\n };\n break;\n\n case 'left':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left - targetElWidth,\n };\n break;\n\n case 'bottom':\n targetElPos = {\n top: hostElPos.top + hostElPos.height,\n left: shiftWidth[orientation](),\n };\n break;\n\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[orientation](),\n };\n break;\n }\n\n return targetElPos;\n }\n\n protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n let offsetParentBCR = { top: 0, left: 0 };\n const elBCR = this.offset(nativeEl);\n const offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n }\n\n protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n };\n }\n\n protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n if ((nativeEl as any).currentStyle) {\n return (nativeEl as any).currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return (window.getComputedStyle as any)(nativeEl)[cssProp];\n }\n\n return (nativeEl.style as any)[cssProp];\n }\n\n protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n }\n\n protected parentOffsetEl(nativeEl: HTMLElement): any {\n let offsetParent: any = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n }\n\n protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n return 'bottom';\n }\n if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n return 'top';\n }\n if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n return 'right';\n }\n if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n return 'left';\n }\n\n return desiredPlacement;\n }\n}\n","// NG2\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n /**\n * [popover] selector retained for backwards compatability, but should be avoived as\n * it interferes with the newly added (2023) HTML standard spec popover attribute.\n */\n selector: '[popover], [novoPopover]',\n standalone: false,\n})\nexport class PopOverDirective implements OnChanges, OnDestroy {\n protected PopoverComponent = PopOverContent;\n protected popover: ComponentRef<PopOverContent>;\n protected visible: boolean;\n private subscriptions = new Subscription();\n\n constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n @Input('popover')\n content: string | PopOverContent;\n @Input('novoPopover')\n set novoPopover(content: string | PopOverContent) {\n this.content = content;\n }\n @Input()\n popoverHtmlContent: string;\n @Input()\n popoverDisabled: boolean;\n @Input()\n popoverAlways: boolean;\n @Input()\n popoverAnimation: boolean;\n @Input()\n popoverPlacement: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverOnHover: boolean = false;\n @Input()\n popoverDismissTimeout: number = 0;\n\n @Output()\n onShown = new EventEmitter<PopOverDirective>();\n @Output()\n onHidden = new EventEmitter<PopOverDirective>();\n\n // ---------------------------------------------------\n // Event listeners\n // ---------------------------------------------------\n @HostListener('click')\n showOrHideOnClick(): void {\n if (this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('focusin')\n @HostListener('mouseenter')\n showOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.show();\n }\n\n @HostListener('focusout')\n @HostListener('mouseleave')\n hideOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.hide();\n }\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (changes.popoverDisabled) {\n if (changes.popoverDisabled.currentValue) {\n this.hide();\n }\n }\n if (changes.popoverAlways) {\n if (changes.popoverAlways.currentValue) {\n this.show();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n toggle() {\n if (!this.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n return;\n }\n\n this.visible = true;\n if (typeof this.content === 'string' || this.popoverHtmlContent) {\n const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n if (!this.visible) {\n return;\n }\n\n this.popover = this.viewContainerRef.createComponent(factory);\n const popover = this.popover.instance as PopOverContent;\n popover.popover = this;\n if (this.content) {\n popover.content = this.content as string;\n }\n if (this.popoverHtmlContent) {\n popover.htmlContent = this.popoverHtmlContent;\n }\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n } else {\n const popover = this.content as PopOverContent;\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n popover.show();\n }\n\n this.onShown.emit(this);\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n if (this.popover) {\n this.popover.destroy();\n }\n\n if (this.content instanceof PopOverContent) {\n (this.content as PopOverContent).hideFromPopover();\n }\n\n this.onHidden.emit(this);\n }\n\n getElement() {\n return this.viewContainerRef.element.nativeElement;\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PopOverContent, PopOverDirective],\n exports: [PopOverContent, PopOverDirective],\n imports: [\n CommonModule,\n ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"novo-elements-elements-popover.mjs","sources":["../../../projects/novo-elements/src/elements/popover/PopOverContent.ts","../../../projects/novo-elements/src/elements/popover/PopOver.ts","../../../projects/novo-elements/src/elements/popover/PopOver.module.ts","../../../projects/novo-elements/src/elements/popover/novo-elements-elements-popover.ts"],"sourcesContent":["import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n\n@Component({\n selector: 'popover-content',\n template: `\n <div\n #popoverDiv\n class=\"popover {{ effectivePlacement }}\"\n [style.top]=\"top + 'px'\"\n [style.left]=\"left + 'px'\"\n [class.fade]=\"animation\"\n style=\"display: block\"\n role=\"popover\"\n >\n <div class=\"arrow {{ effectiveAlignment }}\"></div>\n <div class=\"popover-title\" [hidden]=\"!title\">{{ title }}</div>\n <div class=\"popover-content\">\n <ng-content></ng-content>\n <div *ngIf=\"htmlContent\" class=\"popover-content-text\" [innerHTML]=\"htmlContent\"></div>\n <div *ngIf=\"!htmlContent\" class=\"popover-content-text\">{{ content }}</div>\n </div>\n </div>\n `,\n styleUrls: ['./PopOver.scss'],\n standalone: false,\n})\nexport class PopOverContent implements AfterViewInit {\n @Input()\n content: string;\n @Input()\n htmlContent: string;\n @Input()\n placement: string = 'top';\n @Input()\n title: string;\n @Input()\n animation: boolean = true;\n\n @ViewChild('popoverDiv')\n popoverDiv: ElementRef;\n popover: PopOverDirective;\n onCloseFromOutside = new EventEmitter();\n top: number = -10000;\n left: number = -10000;\n displayType: string = 'none';\n effectivePlacement: string;\n effectiveAlignment: string;\n isHidden: boolean = false;\n\n constructor(protected element: ElementRef, protected cdr: ChangeDetectorRef) {}\n\n ngAfterViewInit(): void {\n this.show();\n this.cdr.detectChanges();\n }\n\n toggle(): void {\n if (this.isHidden) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show(): void {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n\n const p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.displayType = 'block';\n this.top = p.top;\n this.left = p.left;\n this.isHidden = false;\n }\n\n hide(): void {\n this.top = -10000;\n this.left = -10000;\n this.isHidden = true;\n this.popover.hide();\n }\n\n hideFromPopover() {\n this.top = -10000;\n this.left = -10000;\n }\n\n protected positionElements(\n hostEl: HTMLElement,\n targetEl: HTMLElement,\n positionStr: string,\n appendToBody = false,\n ): { top: number; left: number } {\n const positionStrParts = positionStr.split('-');\n const mainSide = (this.effectivePlacement = this.getEffectivePlacement(positionStrParts[0] || 'right', hostEl, targetEl));\n const orientation = (this.effectiveAlignment = positionStrParts[1] || 'center');\n const hostElPos = appendToBody ? this.offset(hostEl) : this.position(hostEl);\n const targetElWidth = targetEl.offsetWidth;\n const targetElHeight = targetEl.offsetHeight;\n\n const shiftWidth: any = {\n center(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth) / 2;\n },\n right(): number {\n return hostElPos.left;\n },\n left(): number {\n return hostElPos.left + (hostElPos.width - targetElWidth);\n },\n };\n\n const shiftHeight: any = {\n center(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight) / 2;\n },\n bottom(): number {\n return hostElPos.top;\n },\n top(): number {\n return hostElPos.top + (hostElPos.height - targetElHeight);\n },\n };\n\n let targetElPos: { top: number; left: number };\n switch (mainSide) {\n case 'right':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left + hostElPos.width,\n };\n break;\n\n case 'left':\n targetElPos = {\n top: shiftHeight[orientation](),\n left: hostElPos.left - targetElWidth,\n };\n break;\n\n case 'bottom':\n targetElPos = {\n top: hostElPos.top + hostElPos.height,\n left: shiftWidth[orientation](),\n };\n break;\n\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[orientation](),\n };\n break;\n }\n\n return targetElPos;\n }\n\n protected position(nativeEl: HTMLElement): { width: number; height: number; top: number; left: number } {\n let offsetParentBCR = { top: 0, left: 0 };\n const elBCR = this.offset(nativeEl);\n const offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left,\n };\n }\n\n protected offset(nativeEl: any): { width: number; height: number; top: number; left: number } {\n const boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft),\n };\n }\n\n protected getStyle(nativeEl: HTMLElement, cssProp: string): string {\n if ((nativeEl as any).currentStyle) {\n return (nativeEl as any).currentStyle[cssProp];\n }\n\n if (window.getComputedStyle) {\n return (window.getComputedStyle as any)(nativeEl)[cssProp];\n }\n\n return (nativeEl.style as any)[cssProp];\n }\n\n protected isStaticPositioned(nativeEl: HTMLElement): boolean {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n }\n\n protected parentOffsetEl(nativeEl: HTMLElement): any {\n let offsetParent: any = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n }\n\n protected getEffectivePlacement(desiredPlacement: string, hostElement: HTMLElement, targetElement: HTMLElement): string {\n const hostElBoundingRect = hostElement.getBoundingClientRect();\n\n if (desiredPlacement === 'top' && hostElBoundingRect.top - targetElement.offsetHeight < 0) {\n return 'bottom';\n }\n if (desiredPlacement === 'bottom' && hostElBoundingRect.bottom + targetElement.offsetHeight > window.innerHeight) {\n return 'top';\n }\n if (desiredPlacement === 'left' && hostElBoundingRect.left - targetElement.offsetWidth < 0) {\n return 'right';\n }\n if (desiredPlacement === 'right' && hostElBoundingRect.right + targetElement.offsetWidth > window.innerWidth) {\n return 'left';\n }\n\n return desiredPlacement;\n }\n}\n","// NG2\nimport {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n EventEmitter,\n HostListener,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChange,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { PopOverContent } from './PopOverContent';\n\n@Directive({\n /**\n * [popover] selector retained for backwards compatability, but should be avoived as\n * it interferes with the newly added (2023) HTML standard spec popover attribute.\n */\n selector: '[popover], [novoPopover]',\n standalone: false,\n})\nexport class PopOverDirective implements OnChanges, OnDestroy {\n protected PopoverComponent = PopOverContent;\n protected popover: ComponentRef<PopOverContent>;\n protected visible: boolean;\n private subscriptions = new Subscription();\n\n constructor(protected viewContainerRef: ViewContainerRef, protected resolver: ComponentFactoryResolver) {}\n\n @Input('popover')\n content: string | PopOverContent;\n @Input('novoPopover')\n set novoPopover(content: string | PopOverContent) {\n this.content = content;\n }\n @Input()\n popoverHtmlContent: string;\n @Input()\n popoverDisabled: boolean;\n @Input()\n popoverAlways: boolean;\n @Input()\n popoverAnimation: boolean;\n @Input()\n popoverPlacement: string;\n @Input()\n popoverTitle: string;\n @Input()\n popoverOnHover: boolean = false;\n @Input()\n popoverDismissTimeout: number = 0;\n\n @Output()\n onShown = new EventEmitter<PopOverDirective>();\n @Output()\n onHidden = new EventEmitter<PopOverDirective>();\n\n // ---------------------------------------------------\n // Event listeners\n // ---------------------------------------------------\n @HostListener('click')\n showOrHideOnClick(): void {\n if (this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.toggle();\n }\n\n @HostListener('focusin')\n @HostListener('mouseenter')\n showOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.show();\n }\n\n @HostListener('focusout')\n @HostListener('mouseleave')\n hideOnHover(): void {\n if (!this.popoverOnHover || this.popoverDisabled) {\n return;\n }\n this.hide();\n }\n\n ngOnChanges(changes: { [propertyName: string]: SimpleChange }) {\n if (changes.popoverDisabled) {\n if (changes.popoverDisabled.currentValue) {\n this.hide();\n }\n }\n if (changes.popoverAlways) {\n if (changes.popoverAlways.currentValue) {\n this.show();\n }\n }\n }\n\n ngOnDestroy(): void {\n this.subscriptions.unsubscribe();\n }\n\n toggle() {\n if (!this.visible) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n show() {\n if (this.visible || (!this.content && !this.popoverHtmlContent)) {\n return;\n }\n\n this.visible = true;\n if (typeof this.content === 'string' || this.popoverHtmlContent) {\n const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);\n if (!this.visible) {\n return;\n }\n\n this.popover = this.viewContainerRef.createComponent(factory);\n const popover = this.popover.instance as PopOverContent;\n popover.popover = this;\n if (this.content) {\n popover.content = this.content as string;\n }\n if (this.popoverHtmlContent) {\n popover.htmlContent = this.popoverHtmlContent;\n }\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n } else {\n const popover = this.content as PopOverContent;\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n\n this.subscriptions.add(popover.onCloseFromOutside.subscribe(() => this.hide()));\n if (this.popoverDismissTimeout > 0) {\n setTimeout(() => this.hide(), this.popoverDismissTimeout);\n }\n popover.show();\n }\n\n this.onShown.emit(this);\n }\n\n hide() {\n if (!this.visible) {\n return;\n }\n\n this.visible = false;\n if (this.popover) {\n this.popover.destroy();\n }\n\n if (this.content instanceof PopOverContent) {\n (this.content as PopOverContent).hideFromPopover();\n }\n\n this.onHidden.emit(this);\n }\n\n getElement() {\n return this.viewContainerRef.element.nativeElement;\n }\n}\n","// NG2\nimport { NgModule } from '@angular/core';\nimport { PopOverDirective } from './PopOver';\n// APP\nimport { PopOverContent } from './PopOverContent';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [PopOverContent, PopOverDirective],\n exports: [PopOverContent, PopOverDirective],\n imports: [\n CommonModule,\n ],\n})\nexport class NovoPopOverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "novo-elements",
3
- "version": "13.0.0-next.3",
3
+ "version": "13.0.0-next.5",
4
4
  "sideEffects": true,
5
5
  "peerDependencies": {
6
6
  "@angular/animations": ">=20",