smart-webcomponents-angular
Version:
[](https://jqwidgets.com/license/)
1 lines • 62.4 kB
Source Map (JSON)
{"version":3,"file":"smart-webcomponents-angular-calendar.mjs","sources":["../../calendar/src/smart.element.ts","../../calendar/src/smart.calendar.ts","../../calendar/src/smart.calendar.module.ts","../../calendar/src/smart-webcomponents-angular-calendar.ts"],"sourcesContent":["\ndeclare global {\n interface Window {\n Smart: any;\n}\n}\n\n\nimport { Directive, ElementRef, Input, Output, EventEmitter } from '@angular/core';\nimport { ElementRenderMode } from './../index';\n\n@Directive()\nexport class BaseElement {\n constructor(ref: ElementRef) {\n const that = this;\n this.nativeElement = ref.nativeElement as any;\n\n that.nativeElement.onAttached = () => {\n that.onAttach.emit(that.nativeElement);\n }\n\n that.nativeElement.onDetached = () => {\n that.onDetach.emit(that.nativeElement);\n }\n }\n\n @Output() onCreate: EventEmitter<any> = new EventEmitter();\n @Output() onReady: EventEmitter<any> = new EventEmitter();\n @Output() onAttach: EventEmitter<any> = new EventEmitter();\n @Output() onDetach: EventEmitter<any> = new EventEmitter();\n\n public nativeElement: any;\n\n public addEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n this.nativeElement.addEventListener(type, listener, options);\n\t}\n\n\tpublic removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options: boolean | AddEventListenerOptions = false): void {\n\t\tthis.nativeElement.removeEventListener(type, listener, options);\n\t}\n\n\tpublic dispatchEvent(event: Event): boolean {\n\t\treturn this.nativeElement.dispatchEvent(event);\n\t}\n\n\tpublic blur(): void {\n\t\tthis.nativeElement.blur();\n\t}\n\n\tpublic click(): void {\n\t\tthis.nativeElement.click();\n\t}\n\n\tpublic focus(options?: FocusOptions): void {\n\t\tthis.nativeElement.focus(options);\n\t}\n\n/** @description Sets or gets the license. */\n\t@Input()\n\tget license(): string {\n\t\treturn this.nativeElement ? this.nativeElement.license : undefined;\n\t}\n\tset license(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.license = value : undefined;\n\t}\n\t\n/** @description Sets or gets the language. Used in conjunction with the property messages. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n}\n\nlet Smart: any;\nif (typeof window !== \"undefined\") {\n\tSmart = window.Smart;\n}\nexport { Smart };\n\n","import { Calendar } from './../index';\nimport { Animation, CalendarMode, DayFormat, CalendarDisplayMode, CalendarDisplayModeView, MonthFormat, ViewLayout, LayoutPosition, CalendarSelectionMode, TooltipPosition, YearFormat, ElementRenderMode} from './../index';\nimport { Component, Directive, AfterViewInit, ElementRef, Input, OnInit, OnChanges, OnDestroy, SimpleChanges, forwardRef, ChangeDetectionStrategy, Output, EventEmitter } from '@angular/core';\nimport { BaseElement, Smart } from './smart.element';\nexport { Animation, CalendarMode, DayFormat, CalendarDisplayMode, CalendarDisplayModeView, MonthFormat, ViewLayout, LayoutPosition, CalendarSelectionMode, TooltipPosition, YearFormat, ElementRenderMode} from './../index';\nexport { Smart } from './smart.element';\nexport { Calendar } from './../index';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n\n\nconst CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CalendarComponent),\n multi: true\n}\n\n@Directive({\n\texportAs: 'smart-calendar',\tselector: 'smart-calendar, [smart-calendar]',\n\tproviders: [CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR]\n\n})\n\nexport class CalendarComponent extends BaseElement implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {\n\tconstructor(ref: ElementRef<Calendar>) {\n\t\tsuper(ref);\n\t\tthis.nativeElement = ref.nativeElement as Calendar;\n\t}\n\n\tprivate eventHandlers: any[] = [];\n\n\tpublic declare nativeElement: Calendar;\n\t/** @description Creates the component on demand.\n\t * @param properties An optional object of properties, which will be added to the template binded ones.\n\t */\n\tpublic createComponent(properties = {}): any {\n \tthis.nativeElement = <Calendar>document.createElement('smart-calendar');\n\t\tfor (let propertyName in properties) { \n \t\t\tthis.nativeElement[propertyName] = properties[propertyName];\n\t\t}\n\t\treturn this.nativeElement;\n\t}\n /**\n * @description\n * The registered callback function called when a change event occurs on the form elements.\n */\n _onChange: (value: any) => void = () => {};\n /**\n * @description\n * The registered callback function called when a blur event occurs on the form elements.\n */\n _onTouched: () => any = () => {};\n\n\n\t/** @description Sets or gets the animation mode. Animation is disabled when the property is set to 'none' */\n\t@Input()\n\tget animation(): Animation | string {\n\t\treturn this.nativeElement ? this.nativeElement.animation : undefined;\n\t}\n\tset animation(value: Animation | string) {\n\t\tthis.nativeElement ? this.nativeElement.animation = value : undefined;\n\t}\n\n\t/** @description Applies new animation settings when it is enabled. Properties:startSpeed - Determines the initial speed of the animation.easeThreshold - Determines the point at which the animation starts to slow down - the \"ease effect\".step - Determines the step ( scrolling interval ) at which the animation will run. stepEaseSize - Coefficient that is used to calculated the new step once the threshold has been passed. resetThreshold - Determines the threshold for animation reset. When it's reached the animation will start over. */\n\t@Input()\n\tget animationSettings(): any {\n\t\treturn this.nativeElement ? this.nativeElement.animationSettings : undefined;\n\t}\n\tset animationSettings(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.animationSettings = value : undefined;\n\t}\n\n\t/** @description Determines the date controls inside the header of the Calendar. */\n\t@Input()\n\tget calendarMode(): CalendarMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.calendarMode : undefined;\n\t}\n\tset calendarMode(value: CalendarMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.calendarMode = value : undefined;\n\t}\n\n\t/** @description Determines the format of the day names located above the days inside the calendar. */\n\t@Input()\n\tget dayNameFormat(): DayFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.dayNameFormat : undefined;\n\t}\n\tset dayNameFormat(value: DayFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.dayNameFormat = value : undefined;\n\t}\n\n\t/** @description A callback that can be used to customize the format of the month name when calendarMode is set to 'default'. */\n\t@Input()\n\tget dateFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.dateFormatFunction : undefined;\n\t}\n\tset dateFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.dateFormatFunction = value : undefined;\n\t}\n\n\t/** @description Enables or disables the Calendar. */\n\t@Input()\n\tget disabled(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disabled : undefined;\n\t}\n\tset disabled(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disabled = value : undefined;\n\t}\n\n\t/** @description Disables auto navigation when the user clicks on a date that's not from the current month in view. */\n\t@Input()\n\tget disableAutoNavigation(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableAutoNavigation : undefined;\n\t}\n\tset disableAutoNavigation(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableAutoNavigation = value : undefined;\n\t}\n\n\t/** @description Enables or disables the Calendar mouse wheel behavior. */\n\t@Input()\n\tget disableMouseWheel(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.disableMouseWheel : undefined;\n\t}\n\tset disableMouseWheel(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.disableMouseWheel = value : undefined;\n\t}\n\n\t/** @description Determines the date view of the calendar when calendarMode is set to 'default' */\n\t@Input()\n\tget displayMode(): CalendarDisplayMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.displayMode : undefined;\n\t}\n\tset displayMode(value: CalendarDisplayMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.displayMode = value : undefined;\n\t}\n\n\t/** @description Determines the type of the month/year view when calendarMode is set to Default. */\n\t@Input()\n\tget displayModeView(): CalendarDisplayModeView | string {\n\t\treturn this.nativeElement ? this.nativeElement.displayModeView : undefined;\n\t}\n\tset displayModeView(value: CalendarDisplayModeView | string) {\n\t\tthis.nativeElement ? this.nativeElement.displayModeView = value : undefined;\n\t}\n\n\t/** @description Determines the height of the month's drop down inside the Calendar. */\n\t@Input()\n\tget dropDownHeight(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownHeight : undefined;\n\t}\n\tset dropDownHeight(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownHeight = value : undefined;\n\t}\n\n\t/** @description Determines the width of the month's drop down inside the Calendar. */\n\t@Input()\n\tget dropDownWidth(): string | number {\n\t\treturn this.nativeElement ? this.nativeElement.dropDownWidth : undefined;\n\t}\n\tset dropDownWidth(value: string | number) {\n\t\tthis.nativeElement ? this.nativeElement.dropDownWidth = value : undefined;\n\t}\n\n\t/** @description Determines the first day of the week. From 0(Sunday) to 6(Saturday) */\n\t@Input()\n\tget firstDayOfWeek(): number {\n\t\treturn this.nativeElement ? this.nativeElement.firstDayOfWeek : undefined;\n\t}\n\tset firstDayOfWeek(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.firstDayOfWeek = value : undefined;\n\t}\n\n\t/** @description Sets a custom footer template. Accepts the id of an HTMLTemplateElement or a reference ot it. */\n\t@Input()\n\tget footerTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.footerTemplate : undefined;\n\t}\n\tset footerTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.footerTemplate = value : undefined;\n\t}\n\n\t/** @description Sets custom header template. Accepts the id of an HTMLTemplateElement or a reference ot it. */\n\t@Input()\n\tget headerTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.headerTemplate : undefined;\n\t}\n\tset headerTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.headerTemplate = value : undefined;\n\t}\n\n\t/** @description Hides the names of the weekdays. */\n\t@Input()\n\tget hideDayNames(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideDayNames : undefined;\n\t}\n\tset hideDayNames(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideDayNames = value : undefined;\n\t}\n\n\t/** @description Hides the dates from other months. */\n\t@Input()\n\tget hideOtherMonthDays(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideOtherMonthDays : undefined;\n\t}\n\tset hideOtherMonthDays(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideOtherMonthDays = value : undefined;\n\t}\n\n\t/** @description Hides the arrow of the tooltip. */\n\t@Input()\n\tget hideTooltipArrow(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.hideTooltipArrow : undefined;\n\t}\n\tset hideTooltipArrow(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.hideTooltipArrow = value : undefined;\n\t}\n\n\t/** @description Sets the dates that will be displayed as important. */\n\t@Input()\n\tget importantDates(): string[] | Date[] {\n\t\treturn this.nativeElement ? this.nativeElement.importantDates : undefined;\n\t}\n\tset importantDates(value: string[] | Date[]) {\n\t\tthis.nativeElement ? this.nativeElement.importantDates = value : undefined;\n\t}\n\n\t/** @description Sets a template for the important dates. Accepts the id of an HTMLTemplate element inside the DOM of or a reference to it. */\n\t@Input()\n\tget importantDatesTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.importantDatesTemplate : undefined;\n\t}\n\tset importantDatesTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.importantDatesTemplate = value : undefined;\n\t}\n\n\t/** @description Sets or gets the unlockKey which unlocks the product. */\n\t@Input()\n\tget unlockKey(): string {\n\t\treturn this.nativeElement ? this.nativeElement.unlockKey : undefined;\n\t}\n\tset unlockKey(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.unlockKey = value : undefined;\n\t}\n\n\t/** @description Determines the language of the Calendar. */\n\t@Input()\n\tget locale(): string {\n\t\treturn this.nativeElement ? this.nativeElement.locale : undefined;\n\t}\n\tset locale(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.locale = value : undefined;\n\t}\n\n\t/** @description Callback used to customize the format of the messages that are returned from the Localization Module. */\n\t@Input()\n\tget localizeFormatFunction(): any {\n\t\treturn this.nativeElement ? this.nativeElement.localizeFormatFunction : undefined;\n\t}\n\tset localizeFormatFunction(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.localizeFormatFunction = value : undefined;\n\t}\n\n\t/** @description Determines the max date for the Calendar. Accepts date objects and valid date string formats. */\n\t@Input()\n\tget max(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.max : undefined;\n\t}\n\tset max(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.max = value : undefined;\n\t}\n\n\t/** @description Sets or gets an object specifying strings used in the widget that can be localized. Used in conjunction with the property locale. */\n\t@Input()\n\tget messages(): any {\n\t\treturn this.nativeElement ? this.nativeElement.messages : undefined;\n\t}\n\tset messages(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.messages = value : undefined;\n\t}\n\n\t/** @description Determines the min date for the Calendar. Accepts date objects and valid date string formats. */\n\t@Input()\n\tget min(): string | Date {\n\t\treturn this.nativeElement ? this.nativeElement.min : undefined;\n\t}\n\tset min(value: string | Date) {\n\t\tthis.nativeElement ? this.nativeElement.min = value : undefined;\n\t}\n\n\t/** @description Determines the number of months to be displayed inside the calendar. The maximum amount of months that can be shown is 12. By default only 1 month is shown. */\n\t@Input()\n\tget months(): number {\n\t\treturn this.nativeElement ? this.nativeElement.months : undefined;\n\t}\n\tset months(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.months = value : undefined;\n\t}\n\n\t/** @description Determines the format of the month names in the header when DisplayMode is set to Default or when Months property is greater than 1. */\n\t@Input()\n\tget monthNameFormat(): MonthFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.monthNameFormat : undefined;\n\t}\n\tset monthNameFormat(value: MonthFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.monthNameFormat = value : undefined;\n\t}\n\n\t/** @description Sets or gets the name attribute for the element. Name is used when submiting HTML forms. */\n\t@Input()\n\tget name(): string {\n\t\treturn this.nativeElement ? this.nativeElement.name : undefined;\n\t}\n\tset name(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.name = value : undefined;\n\t}\n\n\t/** @description If the element is readonly, users cannot interact with it. */\n\t@Input()\n\tget readonly(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.readonly : undefined;\n\t}\n\tset readonly(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.readonly = value : undefined;\n\t}\n\n\t/** @description Sets restricted dates. Restricted dates are dates that cannot be selected/hovered/focused. They are visualy styled as restricted. The dates can be javascript date objects or strings representing a valid date. */\n\t@Input()\n\tget restrictedDates(): string[] | Date[] {\n\t\treturn this.nativeElement ? this.nativeElement.restrictedDates : undefined;\n\t}\n\tset restrictedDates(value: string[] | Date[]) {\n\t\tthis.nativeElement ? this.nativeElement.restrictedDates = value : undefined;\n\t}\n\n\t/** @description Sets or gets the value indicating whether the element is aligned to support locales using right-to-left fonts. */\n\t@Input()\n\tget rightToLeft(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.rightToLeft : undefined;\n\t}\n\tset rightToLeft(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.rightToLeft = value : undefined;\n\t}\n\n\t/** @description Determines the direction of the navigation buttons located in the header and the animation. */\n\t@Input()\n\tget scrollButtonsNavigationMode(): ViewLayout | string {\n\t\treturn this.nativeElement ? this.nativeElement.scrollButtonsNavigationMode : undefined;\n\t}\n\tset scrollButtonsNavigationMode(value: ViewLayout | string) {\n\t\tthis.nativeElement ? this.nativeElement.scrollButtonsNavigationMode = value : undefined;\n\t}\n\n\t/** @description Determines the position of the navigation buttons located inside the header. */\n\t@Input()\n\tget scrollButtonsPosition(): LayoutPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.scrollButtonsPosition : undefined;\n\t}\n\tset scrollButtonsPosition(value: LayoutPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.scrollButtonsPosition = value : undefined;\n\t}\n\n\t/** @description Sets the dates that will be selected. Selected dates are styled differently than the rest. The dates can be Date objects or strings in a valid date format. */\n\t@Input()\n\tget selectedDates(): string[] | Date[] {\n\t\treturn this.nativeElement ? this.nativeElement.selectedDates : undefined;\n\t}\n\tset selectedDates(value: string[] | Date[]) {\n\t\tthis.nativeElement ? this.nativeElement.selectedDates = value : undefined;\n\t}\n\n\t/** @description Determines the date selection mode. */\n\t@Input()\n\tget selectionMode(): CalendarSelectionMode | string {\n\t\treturn this.nativeElement ? this.nativeElement.selectionMode : undefined;\n\t}\n\tset selectionMode(value: CalendarSelectionMode | string) {\n\t\tthis.nativeElement ? this.nativeElement.selectionMode = value : undefined;\n\t}\n\n\t/** @description Sets the delay between clicks of the date navigation buttons located in the header of the Calendar. */\n\t@Input()\n\tget spinButtonsDelay(): number {\n\t\treturn this.nativeElement ? this.nativeElement.spinButtonsDelay : undefined;\n\t}\n\tset spinButtonsDelay(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.spinButtonsDelay = value : undefined;\n\t}\n\n\t/** @description Determines the initial delay before the action of the date navigation buttons located in the header of the Calendar. */\n\t@Input()\n\tget spinButtonsInitialDelay(): number {\n\t\treturn this.nativeElement ? this.nativeElement.spinButtonsInitialDelay : undefined;\n\t}\n\tset spinButtonsInitialDelay(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.spinButtonsInitialDelay = value : undefined;\n\t}\n\n\t/** @description Determines the theme. Theme defines the look of the element */\n\t@Input()\n\tget theme(): string {\n\t\treturn this.nativeElement ? this.nativeElement.theme : undefined;\n\t}\n\tset theme(value: string) {\n\t\tthis.nativeElement ? this.nativeElement.theme = value : undefined;\n\t}\n\n\t/** @description Sets a template for the title section of the Calendar. Accepts the id of an HTMLTemplate element inside the DOM of or a reference it. */\n\t@Input()\n\tget titleTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.titleTemplate : undefined;\n\t}\n\tset titleTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.titleTemplate = value : undefined;\n\t}\n\n\t/** @description Enables/Disabled the tooltip for the important dates. If enabled when an important date is hovered a tooltip is displayed. */\n\t@Input()\n\tget tooltip(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.tooltip : undefined;\n\t}\n\tset tooltip(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.tooltip = value : undefined;\n\t}\n\n\t/** @description Show/Hide the arrow of the the tooltip for the important dates. By default the arrow is visible. */\n\t@Input()\n\tget tooltipArrow(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.tooltipArrow : undefined;\n\t}\n\tset tooltipArrow(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.tooltipArrow = value : undefined;\n\t}\n\n\t/** @description Sets the delay of the tooltip before it appears. */\n\t@Input()\n\tget tooltipDelay(): number {\n\t\treturn this.nativeElement ? this.nativeElement.tooltipDelay : undefined;\n\t}\n\tset tooltipDelay(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.tooltipDelay = value : undefined;\n\t}\n\n\t/** @description Set's a custom offset to the tooltip's position. Accepts an array of two numbers: the left coordinate and the top coordinate. */\n\t@Input()\n\tget tooltipOffset(): number[][] {\n\t\treturn this.nativeElement ? this.nativeElement.tooltipOffset : undefined;\n\t}\n\tset tooltipOffset(value: number[][]) {\n\t\tthis.nativeElement ? this.nativeElement.tooltipOffset = value : undefined;\n\t}\n\n\t/** @description Sets the position of the tooltip. */\n\t@Input()\n\tget tooltipPosition(): TooltipPosition | string {\n\t\treturn this.nativeElement ? this.nativeElement.tooltipPosition : undefined;\n\t}\n\tset tooltipPosition(value: TooltipPosition | string) {\n\t\tthis.nativeElement ? this.nativeElement.tooltipPosition = value : undefined;\n\t}\n\n\t/** @description Sets a template for the tooltip's content. Accepts the id of an HTMLTEmplate element inside the DOM or it's reference. */\n\t@Input()\n\tget tooltipTemplate(): any {\n\t\treturn this.nativeElement ? this.nativeElement.tooltipTemplate : undefined;\n\t}\n\tset tooltipTemplate(value: any) {\n\t\tthis.nativeElement ? this.nativeElement.tooltipTemplate = value : undefined;\n\t}\n\n\t/** @description If is set to true, the element cannot be focused. */\n\t@Input()\n\tget unfocusable(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.unfocusable : undefined;\n\t}\n\tset unfocusable(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.unfocusable = value : undefined;\n\t}\n\n\t/** @description Determines the orientation of the Calendar. */\n\t@Input()\n\tget view(): ViewLayout | string {\n\t\treturn this.nativeElement ? this.nativeElement.view : undefined;\n\t}\n\tset view(value: ViewLayout | string) {\n\t\tthis.nativeElement ? this.nativeElement.view = value : undefined;\n\t}\n\n\t/** @description Determines the visible sections of the Calendar. The view sections are : title, header, footer. Multiple sections can be applied at the same time. By default only the 'header' section is visible. */\n\t@Input()\n\tget viewSections(): string[] {\n\t\treturn this.nativeElement ? this.nativeElement.viewSections : undefined;\n\t}\n\tset viewSections(value: string[]) {\n\t\tthis.nativeElement ? this.nativeElement.viewSections = value : undefined;\n\t}\n\n\t/** @description Enables/Disabled week numbering. If enabled week numbers are displayed infront of each week inside the Calendar. */\n\t@Input()\n\tget weekNumbers(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.weekNumbers : undefined;\n\t}\n\tset weekNumbers(value: boolean) {\n\t\tthis.nativeElement ? this.nativeElement.weekNumbers = value : undefined;\n\t}\n\n\t/** @description Determines the number of visible weeks. The value of the property ranges from 1 to 6. Where 1 is one week and 6 is a full month ( 6 weeks ). */\n\t@Input()\n\tget weeks(): number {\n\t\treturn this.nativeElement ? this.nativeElement.weeks : undefined;\n\t}\n\tset weeks(value: number) {\n\t\tthis.nativeElement ? this.nativeElement.weeks = value : undefined;\n\t}\n\n\t/** @description Determines the year format in the header when DisplayMode is set to Default or when Months property is greater than 1. */\n\t@Input()\n\tget yearFormat(): YearFormat | string {\n\t\treturn this.nativeElement ? this.nativeElement.yearFormat : undefined;\n\t}\n\tset yearFormat(value: YearFormat | string) {\n\t\tthis.nativeElement ? this.nativeElement.yearFormat = value : undefined;\n\t}\n\n\t/** @description This event is triggered when a new date has been selected/unselected.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tvalue)\n\t* value - An array of all currently selected dates.\n\t*/\n\t@Output() onChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the displayMode is about to change. This event allows to cancel the operation by calling event.preventDefault() in the event handler function.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\toldDisplayMode, \tnewDisplayMode)\n\t* oldDisplayMode - The previous display mode.\n\t* newDisplayMode - The new display mode.\n\t*/\n\t@Output() onDisplayModeChanging: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the display mode has changed.\n\t* @param event. The custom event. \t*/\n\t@Output() onDisplayModeChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the view is changing. This navigation can be cancelled by using the preventDefault method.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tvalue, \ttype)\n\t* value - The view's date.\n\t* type - The view type - 'month', 'decade' or 'year'.\n\t*/\n\t@Output() onNavigationChanging: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the view is changed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\tvalue, \ttype)\n\t* value - The view's date.\n\t* type - The view type - 'month', 'decade' or 'year'.\n\t*/\n\t@Output() onNavigationChange: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the tooltip for the important date is opened.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget, \tvalue)\n\t* target - The event target - tooltip.\n\t* value - The important date of the hovered cell.\n\t*/\n\t@Output() onOpen: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description This event is triggered when the tooltip for the important date is closed.\n\t* @param event. The custom event. \tCustom event was created with: event.detail(\ttarget, \tvalue)\n\t* target - The event target - tooltip.\n\t* value - The important date of the hovered cell.\n\t*/\n\t@Output() onClose: EventEmitter<CustomEvent> = new EventEmitter();\n\n\t/** @description Clears the selection. Removes all seleceted dates. \n\t*/\n public clearSelection(): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.clearSelection();\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.clearSelection();\n });\n }\n }\n\n\t/** @description Navigates forwards/backwards depending on the argument. \n\t* @param {number | Date | string} step. The argument can be the following: <ul><li> number - representing the number of months to scroll. Can be negavtive. If negative it will scroll backwards.</li><li> Date - a date object representing the Date to navigate to.</li><li> string - a string representing a valid Date, e.g. \"2020-10-1\" </li></ul>\n\t* @returns {boolean}\n */\n\tpublic async navigate(step): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.navigate(step);\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic navigateSync(step): boolean {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.navigate(step);\n }\n return null;\n }\n\n\t/** @description Selects or Unselects a date. \n\t* @param {Date | string} date. The date to be selected or unselected. The date can be a Date object or a string in valid date format.\n\t*/\n public select(date: Date | string): void {\n if (this.nativeElement.isRendered) {\n this.nativeElement.select(date);\n }\n else\n {\n this.nativeElement.whenRendered(() => {\n this.nativeElement.select(date);\n });\n }\n }\n\n\t/** @description Selects today's date. \n\t* @returns {Date}\n */\n\tpublic async today(): Promise<any> {\n\t\tconst getResultOnRender = () => {\n return new Promise(resolve => {\n this.nativeElement.whenRendered(() => {\n const result = this.nativeElement.today();\n resolve(result)\n });\n });\n };\n const result = await getResultOnRender();\n\n return result;\n }\n\n\tpublic todaySync(): Date {\n if (this.nativeElement.isRendered) {\n \t return this.nativeElement.today();\n }\n return null;\n }\n\n\n\tget isRendered(): boolean {\n\t\treturn this.nativeElement ? this.nativeElement.isRendered : false;\n\t}\n\n\tngOnInit() {\n\t}\n\n ngAfterViewInit() {\n const that = this;\n\n that.onCreate.emit(that.nativeElement);\n\n\t\tif (Smart) Smart.Render();\n\n\t\tthis.nativeElement.classList.add('smart-angular');\n\n\t\tif (this.nativeElement.whenRendered) this.nativeElement.whenRendered(() => { that.onReady.emit(that.nativeElement); });\n\t\tthis.listen();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.unlisten();\n\t}\n\n\t_initialChange = true; \n\n\tget ngValue(): any {\n\t\tif (!this.nativeElement) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.selectedDates && this.selectedDates.length > 0) {\n\t\t\tconst value = this.nativeElement.selectedDates.length === 1 ? this.nativeElement.selectedDates[0] : this.nativeElement.selectedDates;\n\t\t\treturn value;\n\t\t}\n return null;\n\t}\n\n\tset ngValue(value: any) {\n\t\tif (this.nativeElement) {\n\t\t this.writeValue(value);\n\t\t}\n\t}\n\n\twriteValue(value: any): void {\n const that = this;\n const normalizedValue = value == null ? '' : value;\n\n\t\tthat.nativeElement.whenRendered(() => {\n that.nativeElement.isInitialized = that._initialChange ? false : true;\n\t\t\tthat.clearSelection();\n if (Array.isArray(normalizedValue)) {\n value.forEach((currentValue: any) => this.select(currentValue));\n }\n else {\n that.select(normalizedValue);\n }\n that.nativeElement.isInitialized = true;\n\t\t\tif (that._initialChange === false) {\n if (that.selectedDates && that.selectedDates.length > 1) {\n that._onChange(that.selectedDates);\n } else {\n that._onChange((that.selectedDates && that.selectedDates.length > 0) ? that.selectedDates[0] : null);;\n }\n }\n\t\t});\n\t}\n\n\tregisterOnChange(fn: any): void {\n\t\tthis._onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: any): void {\n\t\tthis._onTouched = fn;\n\t}\n\n\tngOnChanges(changes: SimpleChanges) {\n\t\tif (this.nativeElement && this.nativeElement.isRendered) {\n\t\t\tfor (const propName in changes) {\n\t\t\t\tif (changes.hasOwnProperty(propName)) {\n\t\t\t\t\tthis.nativeElement[propName] = changes[propName].currentValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/** @description Add event listeners. */\n\tprivate listen(): void {\n const that = this;\n\t\tthat.eventHandlers['changeHandler'] = (event: CustomEvent) => { that.onChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeHandler']);\n\n\t\tthat.eventHandlers['displayModeChangingHandler'] = (event: CustomEvent) => { that.onDisplayModeChanging.emit(event); }\n\t\tthat.nativeElement.addEventListener('displayModeChanging', that.eventHandlers['displayModeChangingHandler']);\n\n\t\tthat.eventHandlers['displayModeChangeHandler'] = (event: CustomEvent) => { that.onDisplayModeChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('displayModeChange', that.eventHandlers['displayModeChangeHandler']);\n\n\t\tthat.eventHandlers['navigationChangingHandler'] = (event: CustomEvent) => { that.onNavigationChanging.emit(event); }\n\t\tthat.nativeElement.addEventListener('navigationChanging', that.eventHandlers['navigationChangingHandler']);\n\n\t\tthat.eventHandlers['navigationChangeHandler'] = (event: CustomEvent) => { that.onNavigationChange.emit(event); }\n\t\tthat.nativeElement.addEventListener('navigationChange', that.eventHandlers['navigationChangeHandler']);\n\n\t\tthat.eventHandlers['openHandler'] = (event: CustomEvent) => { that.onOpen.emit(event); }\n\t\tthat.nativeElement.addEventListener('open', that.eventHandlers['openHandler']);\n\n\t\tthat.eventHandlers['closeHandler'] = (event: CustomEvent) => { that.onClose.emit(event); }\n\t\tthat.nativeElement.addEventListener('close', that.eventHandlers['closeHandler']);\n\n\n that.eventHandlers['changeModelHandler'] = (event: Event) => {\n that._initialChange = false;\n that._onChange(that.nativeElement.selectedDates.length > 0 ? (that.nativeElement.selectedDates.length > 1 ? that.nativeElement.selectedDates : that.nativeElement.selectedDates[0]) : null);\n };\n that.eventHandlers['blurModelHandler'] = (event: Event) => {\n that._onTouched();\n };\n that.nativeElement.whenRendered(() => {\n if (that.nativeElement.querySelector('input')) {\n that.eventHandlers['keyupModelHandler'] = (event) => {\n setTimeout(() => { that.eventHandlers['changeModelHandler'](event); }, 50);\n };\n\n that.nativeElement.querySelector('input').addEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n });\n\t\tthat.nativeElement.addEventListener('change', that.eventHandlers['changeModelHandler']);\n\t\tthat.nativeElement.addEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t}\n\n\t/** @description Remove event listeners. */\n\tprivate unlisten(): void {\n const that = this;\n\t\tif (that.eventHandlers['changeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['displayModeChangingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('displayModeChanging', that.eventHandlers['displayModeChangingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['displayModeChangeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('displayModeChange', that.eventHandlers['displayModeChangeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['navigationChangingHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('navigationChanging', that.eventHandlers['navigationChangingHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['navigationChangeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('navigationChange', that.eventHandlers['navigationChangeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['openHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('open', that.eventHandlers['openHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['closeHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('close', that.eventHandlers['closeHandler']);\n\t\t}\n\n\t\tif (that.eventHandlers['changeModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('change', that.eventHandlers['changeModelHandler']);\n if (that.nativeElement.querySelector('input')) {\n that.nativeElement.querySelector('input').removeEventListener('keyup', that.eventHandlers['keyupModelHandler']);\n }\n\t\t}\n\t\tif (that.eventHandlers['blurModelHandler']) {\n\t\t\tthat.nativeElement.removeEventListener('blur', that.eventHandlers['blurModelHandler']);\n\t\t}\n\t}\n}\n","import { NgModule } from '@angular/core';\n\nimport { CalendarComponent } from './smart.calendar';\nimport { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\n@NgModule({\n declarations: [CalendarComponent],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n\texports: [CalendarComponent]\n})\n\nexport class CalendarModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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